структуры sizeof () неизвестны. Почему?

Почему я не могу использовать sizeof () для простых структур?

например:

private struct FloatShortPair
{
    public float myFloat;
    public short myShort;
};

int size = sizeof(FloatShortPair);  //CS0233

error CS0233:' FloatShortPair 'не имеет предопределенного размера, поэтому sizeof может может использоваться только в небезопасном контексте (рассмотрите возможность использования System.Runtime.InteropServices.Marshal.SizeOf)

MSDN заявляет:

Оператор sizeof может использоваться только для типов, которые являются типами времени компиляции {{1} } константы. Если вы получаете эту ошибку, убедитесь, что размер идентификатора может быть определен во время компиляции. Если это невозможно, то используйте SizeOf вместо sizeof.

Как float и short не являются константами времени компиляции? 8 - /

23
задан GazTheDestroyer 8 November 2011 в 09:51
поделиться