System.convert.ToString () vs Явное приведение типов в c # - PullRequest
0 голосов
/ 12 марта 2012

Я работал над небольшим проектом на C # (на самом деле я переехал на несколько недель в .Net), и я столкнулся со следующей ситуацией,

 str = System.Convert.ToString(
                        (sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2);

В приведенном выше коде я пытался читать из листа Excel на строку. Сначала я попытался сделать следующее:

 str = (string) ((sheetRange.Cells[rcnt, ccnt] as Excel.Range).Value2);

В результате возникла ошибка времени выполнения: невозможно преобразовать объект типа 'System.Double' в тип 'System.String'. InValidException было обнаружено.

Я гуглил, чтобы выяснить разницу между ними, но многого не мог получить. Я как бы запутался с этим. Итак, мои вопросы следующие,

1) В чем разница между двумя, а точнее говоря, в чем разница между явным приведением типа и использованием system.convert? Это относится ко всем типам?

2) Это то же самое в Java, если это то, что эквивалентно этому?

Я обновился, чтобы показать, что именно я получаю, пока я разыгрываю его со строкой. Я получаю исключение, когда я бросаю Double в строку. Но преобразование Double в строку работает. Теперь мой вопрос - почему он не позволяет приводить двойное число к строке, а позволяет преобразовывать двойное в строку? Я надеюсь, что проясняю себя.

Прошу прощения, если это просто, и если я просмотрел некоторые основные моменты о приведении типов.

Заранее спасибо.

1 Ответ

4 голосов
/ 12 марта 2012

В ответ на первую часть вашего вопроса: Кастинг и Конвертация - это две разные вещи.Я не разработчик Java, но я подозреваю, что то же самое в Java.

В MSDN есть статья, которая подробно на это отвечает: Приведение типов и преобразование типов (Руководство по программированию в C #)

...