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# 参考)

enum(C# 参考)

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

结构(C# 编程指南)

常量(C# 编程指南)

概念

C# 编程指南

其他资源

C# 参考