Casting to string versus calling ToString
c#
Solution
- `(string)obj` casts `obj` into a `string`. `obj` must already be a `string` for this to succeed.
- `obj.ToString()` gets a string representation of `obj` by calling the `ToString()` method. Which is `obj` itself when `obj` is a `string`. This (should) never throw(s) an exception (unless `obj` happens to be `null`, obviously).
So in your specific case, both are equivalent.
Note that `string` is a reference type (as opposed to a value type). As such, it inherits from object and no boxing ever occurs.
Problem
``` object obj = "Hello"; string str1 = (string)obj; string str2 = obj.ToString(); ``` What is the difference between `(string)obj` and `obj.ToString()`?