Why can't I use sizeof() on simple structs?
eg:
private struct FloatShortPair
{
public float myFloat;
public short myShort;
};
int size = sizeof(FloatShortPair); //CS0233
error CS0233: 'FloatShortPair' does not have a predefined size, therefore sizeof can only be used in an unsafe context (consider using System.Runtime.InteropServices.Marshal.SizeOf)
MSDN states:
The sizeof operator can only be used for types that are compile-time
constants. If you are getting this error, make sure that the size of
the identifier can be determined at compile time. If it cannot, then
use SizeOf instead of sizeof.
How are float and short not compile time constants? 8-/
See Question&Answers more detail:
os 与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…