sizeof(C# 参考)
更新:2007 年 11 月
用于获取 值类型 的字节大小。例如,可以如下所示检索 int 类型的大小:
int intSize = sizeof(int);
备注
sizeof 运算符仅适用于值类型,而不适用于引用类型。
说明: |
---|
从 C# 2.0 版开始,将 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 运算符只能在不安全代码块中使用。虽然可以使用 Marshal.SizeOf 方法,但该方法返回的值和 sizeof 返回的值并不总是相同的。Marshal.SizeOf 在已封送处理类型后返回大小,而 sizeof 返回公共语言运行时分配的大小(包括任何空白)。
示例
class MainClass
{
// unsafe not required for primitive types
static void Main()
{
Console.WriteLine("The size of short is {0}.", sizeof(short));
Console.WriteLine("The size of int is {0}.", sizeof(int));
Console.WriteLine("The size of long is {0}.", sizeof(long));
}
}
/*
Output:
The size of short is 2.
The size of int is 4.
The size of long is 8.
*/
C# 语言规范
有关更多信息,请参见 C# 语言规范中的以下各章节:
- 18.5.8 sizeof 运算符