Разница между типизацией и разбором? - PullRequest
3 голосов
/ 27 сентября 2010

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

Примерно так:

string str = "10";
int i = (int) str;

Ответы [ 2 ]

4 голосов
/ 27 сентября 2010

Для того, чтобы приведение типов работало, типы должны быть совместимы:

object str = 10;
int i = (int) str;

Разбор - это преобразование между различными типами:

string str = "10";
int i = int.Parse(str);
0 голосов
/ 27 сентября 2010

Приведение работает, когда объекты разделяют некоторую часть наследования. Но в вашем случае

int i = (int) str;

Вы имеете дело с неявным автоматическим преобразованием. В котором компилятор автоматически удаляет / теряет встроенный тип .NET. Для полного руководства перейдите сюда и посмотрите Преобразование и литье

Int32.Parse(...

Разбор предназначен для случаев, когда они являются двумя несвязанными объектами, но существует способ преобразования в одну сторону.

...