Type. как его есть? и настолько ли он волшебный??
От: nasyrov  
Дата: 15.11.06 04:53
Оценка:
несколько не интуитивно понятно работа с этим Type. т.е. передачи значений через object.

Дело в том, что передаются значения различных типов (в основном string, int, float, double) в виде object, и надо потом орпеделить какой тип переменной, для последующей корректной работы с ней.

прочтя MSDN, нашел только одни способ

object o = value;

if (o.GetType().Name == "Int32")
//
else if (o.GetType().Name == "Double")
//
....


нет ли что-нить проще писаемое?, ведь только Int'ов там 3 (16, 32, 64). да и кто гарантирует что имя типа не измениться во Framework 3, 4, 5 etc.?
Re: Type. как его есть? и настолько ли он волшебный??
От: Luchnik Россия  
Дата: 15.11.06 05:32
Оценка: +1
Здравствуйте, nasyrov, Вы писали:

N>прочтя MSDN, нашел только одни способ


N>object o = value;


N>if (o.GetType().Name == "Int32")

N> //
N>else if (o.GetType().Name == "Double")
N> //
N>....




if(o.GetType() == typeof(System.Int32))
...
Re: Type. как его есть? и настолько ли он волшебный??
От: MatFiz Россия  
Дата: 15.11.06 06:35
Оценка: 1 (1) +2
Здравствуйте, nasyrov, Вы писали:

N>несколько не интуитивно понятно работа с этим Type. т.е. передачи значений через object.


N>Дело в том, что передаются значения различных типов (в основном string, int, float, double) в виде object, и надо потом орпеделить какой тип переменной, для последующей корректной работы с ней.


N>прочтя MSDN, нашел только одни способ


N>object o = value;


N>if (o.GetType().Name == "Int32")

N> //
N>else if (o.GetType().Name == "Double")
N> //
N>....


N>нет ли что-нить проще писаемое?, ведь только Int'ов там 3 (16, 32, 64). да и кто гарантирует что имя типа не измениться во Framework 3, 4, 5 etc.?



if (o is int)
{
}
else if (o is double)
{
}
How are YOU doin'?
Re: Type. как его есть? и настолько ли он волшебный??
От: Morpheus_  
Дата: 15.11.06 10:20
Оценка:
Здравствуйте, nasyrov, Вы писали:

N>object o = value;


N>if (o.GetType().Name == "Int32")

N> //
N>else if (o.GetType().Name == "Double")
N> //
N>....

N>нет ли что-нить проще писаемое?, ведь только Int'ов там 3 (16, 32, 64). да и кто гарантирует что имя типа не измениться во Framework 3, 4, 5 etc.?


if (o is Int32)
    //
else if (o is double)
    //
... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.