多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# sizeof(C# 参考) 用于获取非托管类型的大小(以字节为单位)。非托管类型包括下表列出的内置类型以及以下类型: * 枚举类型 * 指针类型 * 用户定义的结构,不包含任何属于引用类型的字段或属性 下面的示例演示如何检索 **int** 的大小: ``` // Constant value 4: int intSize = sizeof(int); ``` ## 备注 从 C# 2.0 版开始,将 **sizeof** 应用于内置类型不再要求使用 [unsafe](https://msdn.microsoft.com/zh-cn/library/chfa2zb8.aspx) 模式。 不能重载 **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](https://msdn.microsoft.com/zh-cn/library/y3ybkfb3.aspx) 方法,但此方法返回的值并不总是与 **sizeof** 返回的值相同。 [Marshal.SizeOf](https://msdn.microsoft.com/zh-cn/library/y3ybkfb3.aspx) 在封送类型后返回大小,而 **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# 语言规范](https://msdn.microsoft.com/zh-cn/library/ms228593.aspx)。该语言规范是 C# 语法和用法的权威资料。 ## 请参阅 [C# 参考](https://msdn.microsoft.com/zh-cn/library/618ayhy6.aspx) [C# 编程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [C# 关键字](https://msdn.microsoft.com/zh-cn/library/x53a06bb.aspx) [运算符关键字(C# 参考)](https://msdn.microsoft.com/zh-cn/library/bewds7kc.aspx) [enum(C# 参考)](https://msdn.microsoft.com/zh-cn/library/sbbt4032.aspx) [不安全代码和指针(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/t2yzs44b.aspx) [结构(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/saxz13w4.aspx) [常量(C# 编程指南)](https://msdn.microsoft.com/zh-cn/library/ms173119.aspx)