奇思妙想 · 2024年 6月 15日 0

可以控制结构体或类的字段偏移?

21 次浏览

C#语言提供StructLayoutAttribute特性可以指示编译器重新布局结构体或类的字段偏移,这意味着如果一个结构体Point包含x/y两个字段,C#编译器可以优化顺序,将y排在x之前以优化性能(假如访问y的次数确实更多)。基本上没有其它编程语言提供类似C#这种功能。

  • C#没有union类型,但可利用StructLayoutAttribute特性将字段偏移全设置为0模拟union.