Итак, я всегда предполагал, что кастинг и преобразование в С# в основном одно и то же: два разных способа перехода от одного типа данных к другому. Ясно, что это неверно, поскольку они часто выдают разные результаты.
Convert.ToInt32(1.6) //outputs 2
(Int32)1.6 //outputs 1
(DateTime)("10/29/2013") //won't compile - cannot convert type 'string' to type 'system.date.time'
Convert.ToDateTime("10/29/2013") //outputs 10/29/2013 12:00:00 AM
- Мой вопрос в том, что является основным различием между ними и почему они возвращают разные результаты?
- Что такое "подходящее" время для использования одного над другим?
Лично я нахожу себя использующим метод Convert.To
, который кажется мне более чистым. Я знаю, что он также выбрасывает System.InvalidCastException
. Может ли кто-нибудь дать простое объяснение?