(string)objотличаетobj в string. obj должен быть уже string для успеха.
obj.ToString() получает строковое представление obj, вызывая метод ToString(). Это obj, когда obj является string. Это (должно) никогда не бросает (-ы) исключение.
Итак, в вашем конкретном случае оба эквивалентны.
Обратите внимание, что string является ссылочным типом (в отличие от тип значения). Таким образом, он наследуется от объекта и
Ответ 2
Если какая-либо помощь, вы можете использовать оператор "как", который похож на листинг, но возвращает null вместо исключения при любом отказе преобразования.
string str3 = obj as string;
Ответ 3
На самом базовом уровне:
(string)obj попытается применить obj к string и не будет работать, если нет правильного преобразования.
obj.ToString() вернет string, который решил конструктор obj, представляет этот объект. По умолчанию он возвращает имя класса obj.
Ответ 4
(string) obj отбрасывает объект и сбой, если obj не является нулевым, а не строкой.
obj.ToString() преобразует obj в строку (даже если это не строка), он будет терпеть неудачу, если obj имеет значение null, как вызов метода.
Ответ 5
ToString() - метод класса объекта (основной родительский класс в .net), который может быть перегружен в вашем классе, который наследуется от класса объекта, даже если вы его не унаследовали.
(string) - это литье, которое может быть реализовано в классе it self, класс string, поэтому у вас нет возможности на нем.