目录:
定义-Sizeof运算符是什么意思?
C#中的Sizeof运算符是用于确定非引用类型的非托管类型的大小(以字节为单位)的运算符。
在开发涉及动态内存分配的应用程序时,通常会找到分配给类型的内存。 假定类型的大小并在应用程序中使用硬编码值是非常不安全的,因为当移植到不同的系统时,这可能会破坏应用程序。 在这种情况下,可以使用sizeof运算符来查找复合数据类型(如struct)的大小。 但是,由于.NET框架的虚拟化类型布局系统,它只能用于计算值类型的字节大小,而不能用于引用类型。
sizeof运算符有助于为从托管应用程序传递到非托管代码(如Interop,自定义序列化等)的数据结构分配内存。递增和递减运算符(对指针进行操作)在内部使用sizeof运算符来递增或递减包含的地址指针变量中的值等于指针类型占用的字节数。 sizeof运算符有助于提高代码的可读性。
Techopedia解释了Sizeof运算符
sizeof运算符是一元运算符,采用一个singe参数,并与关键字“ sizeof”一起使用。 与C ++相比,sizeof运算符是编译时结构,因此参数必须是编译期间已知的封闭类型,而不是变量。 该参数也可以是枚举,指针或用户定义的结构,而没有任何字段或引用类型属性。 对于某些预定义类型,sizeof运算符返回一个常量值,而将其与其余类型结合使用会产生基于实现的值。
例如,当以整数(int)作为参数执行sizeof运算符时,它始终返回数字4,以指示整数类型的变量占用了四个字节的内存。
将sizeof运算符应用于结构类型操作数时,它将获取结构占用的字节总数,其中包括用于内部对齐的填充字节。 将sizeof运算符与struct结合使用时要遵循的准则包括:- 应该在不安全的块中调用它
- struct变量不得包含引用类型的成员
- 该结构不得为通用值类型