用于获取 值类型 的字节大小。例如,可以如下所示检索 int 类型的大小:
int intSize = sizeof(int);
Console.WriteLine(intSize);
sizeof 运算符仅适用于值类型,而不适用于引用类型。
不能重载 sizeof 运算符。由 sizeof 运算符返回的值是 int 类型。下表显示表示某些预定义类型大小的常数值。
表达式 | 结果 |
sizeof(sbyte) | 1 |
sizeof(byte) | 1 |
sizeof(short) | 2 |
sizeof(ushort) | 2 |
sizeof(int) | 4 |
sizeof(uint) | 4 |
sizeof(long) | 8 |
sizeof(ulong) | 8 |
sizeof(char) | 2 (Unicode) |
sizeof(float) | 4 |
sizeof(double) | 8 |
sizeof(bool) | 1 |
对于所有其他类型(包括 struct),sizeof 运算符只能在不安全代码块中使用。虽然可以使用 SizeOf 方法,但该方法返回的值和 sizeof 返回的值并不总是相同的。Marshal.SizeOf 在已封送处理类型后返回大小,而 sizeof 返回公共语言运行库分配的大小(包括任何空白)。
本文为天轰穿原著,转载请注明出处及作者!