Получение размера типа, описываемого переменной типа «Тип» [дубликат]C#

Место общения программистов C#
Ответить
Anonymous
 Получение размера типа, описываемого переменной типа «Тип» [дубликат]

Сообщение Anonymous »

Наверное, это глупый вопрос, но я не смог найти ответа ни на этом сайте (нашел, но это не совсем так, поскольку рекомендуемое решение — использовать Marshal.SizeOf, что, насколько я понимаю, подходит с неуправляемой памятью) или здесь.
Итак, скажем, у меня есть переменная типа, что-то вроде

Код: Выделить всё

Type someType = typeof(double);
где во время компиляции я не знаю точного значения переменной (в моей фактической реализации это будет одно из нескольких значений (точнее, 6)).
Есть ли способ получить размер типа, описываемого 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);
}
}
это выглядит некрасиво и немного неудобно, поскольку мне придется написать дополнительную строку, если я добавлю поддержку нового типа. Есть ли способ обойти это безобразие?

Подробнее здесь: https://stackoverflow.com/questions/793 ... -type-type
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»