2010-08-12 5 views

ответ

1

вы не можете просто бросить объект к одному из тех, кого вы упомянули. Они должны быть либо из тех, либо из этих типов.

В программировании нет алхимии.

+0

объект reader1 reader1 = Convert.ChangeType (reader1, Type.GetType (reader1.ToString())); //(объект)Convert.ChangeType(MyDataSet, typeof (object)); //(System.Data.DataRow)Convert.ChangeType(reader1, Type.GetType (reader1.ToString())); //(Type.GetType(reader1))Convert.ChangeType(reader1, Type.GetType (reader1.ToString())); – Charu

+0

i вещь, мы можем сделать как приведенный выше пример – Charu

+0

@Charu: Нет, это очень желаемое за действительное. – leppie

1

Кастинг может происходить только между совместимыми типами. Чтобы преобразовать два несовместимых типа, вам необходимо выполнить преобразование.

Ex: Вы не можете наложить строку на int и наоборот, поскольку они являются несовместимыми типами, поэтому есть способ конвертировать оба в друг друга.

int x = 5; 
string str = string.Empty;  

str = x.ToString(); //Convert int x into string str. 
x = Convert.ToInt32(str); //Convert string str into int x. 

Вместо того, чтобы писать всю историю, объясняющую разницу между литьем и преобразования здесь, я предпочел бы рекомендовать вам прочитать this interesting conversation на SO. Дочитайте Eric Lippertanswer. Эрик Липперт работает с Microsoft в команде разработчиков компилятора C#.

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