sizeof(C# 参考)

用于获取非托管类型的大小(以字节为单位)。非托管类型包括下表列出的内置类型以及以下类型:

  • 枚举类型

  • 指针类型

  • 用户定义的结构,不包含任何属于引用类型的字段或属性

下面的示例演示如何检索 int 的大小:

// Constant value 4:
int intSize = sizeof(int);

备注

从 C# 2.0 版开始,将 sizeof 应用于内置类型不再要求使用 unsafe 模式。

不能重载 sizeof 运算符。 sizeof 运算符的返回值是 int 类型。下表列出了一些常量值,这些值对应于以某些内置类型为操作数的 sizeof 表达式。

表达式 常量值
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(decimal) 16
sizeof(bool) 1

对于所有其他类型(包括结构),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# 语言规范。该语言规范是 C# 语法和用法的权威资料。

请参阅

C# 参考

C# 编程指南

C# 关键字

运算符关键字(C# 参考)

enum(C# 参考)

不安全代码和指针(C# 编程指南)

结构(C# 编程指南)

常量(C# 编程指南)