2014-11-10 2 views

ответ

2

Поскольку первый использует метод int.ToString для новообращенныйint на это string представление в то время как второй старается castint к string, который не работает, потому что это на самом деле не string но int.

Read:

Явные преобразования (отливок): Явные преобразования требуют произнесения оператора. Кастинг необходим, если информация может быть потеряна в преобразовании , или когда преобразование может не удаться для других причин .

String и Int32 не связаны вообще, поэтому они не могут быть литыми друг к другу и уже компилятор выдаст сообщение об ошибке. Иногда компилятор успешно компилируется, но вы получаете InvalidCastException во время выполнения, когда сбой выполнен.

Read: Compile-time and runtime casting c#

Обратите внимание, что вы можете конвертироватьint в string через ToString и вы можете конвертироватьstring в int через int.Parse (или int.TryParse):

int z = int.Parse("3"); 
+0

Tim прав int первая строка кода 'Int.tostring()' является методом, а во втором коде вы выполняете кастинг из структуры Int ** ** в s tring ** Класс **, который дает ошибку. – Rashmin

0

ToString - не тип литье. Это метод, унаследованный от object и реализованный в System.Int32, который преобразует целое число в строковое представление.

int не является строкой, поэтому кастинг по праву терпит неудачу. Метод ToString - это то, где вы помещаете пользовательскую логику, которой нет приведения типов, для преобразования экземпляра в его строковое представление. Вы можете (и часто должны) реализовать ToString самостоятельно в своих пользовательских классах и структурах - часто полезно иметь содержательное строковое представление.

Смежные вопросы