Итак, скажем, у меня есть переменная типа, что-то вроде
Код: Выделить всё
Type someType = typeof(double);
Есть ли способ получить размер типа, описываемого someType? В настоящее время, поскольку у меня есть только 6 возможных значений некоторого типа, я решил проблему, написав:
Код: Выделить всё
int getTypeSize(Type in)
{
if (in == typeof(double))
{
return sizeof(double);
}
if (in == typeof(short))
{
return sizeof(short);
}
if (in == typeof(int))
{
return sizeof(int);
}
}
РЕДАКТИРОВАТЬ:
Этот ответ был закрыт как дубликат < /p>
Я не согласен с решением, точнее, не понимаю, почему эти два вопроса дублируются. Вот мое понимание:
- В связанном вопросе ОП имеет переменную x типа int и хочет получить размер x, который равен sizeof(int) независимо от значения x.
- В моем вопросе у меня есть переменная x типа Type, и значение, которое я хочу вычислить, зависит от значения x. Например, если x==typeof(double), то я хочу, чтобы моя функция возвращала sizeof(double), а если x==typeof(float), я хочу, чтобы она возвращала return sizeof(float).
Теперь я согласен, что ответ в некотором смысле дублируется, связанный ответ на самом деле спрашивал, что Я написал здесь, но первоначальная формулировка была немного неправильной.
Подробнее здесь: https://stackoverflow.com/questions/793 ... -type-type
Мобильная версия