![]() |
1
6
允许联合将破坏.NET的安全性,尤其是在托管对象方面。 例如(对于32位系统):
C#允许你用枪射自己的脚吗 不安全的 关键字和具有某些属性,但从不涉及托管类型。您可能已经注意到FieldOffset不允许您将随机类型组合在一起。试试上面的“联合”。
|
![]() |
2
4
因为联合本质上既不是类型安全的,也不是指针安全的,而且CLR非常重视这两个问题。
这不仅非常不起作用(尤其是在64位平台下),而且还破坏了CLR的许多保证,以至于读起来很痛苦。
首先,它允许您在不实际使用指针的情况下获取指向对象的指针,因此需要对联合进行分类
这也是完全不安全的类型。列表与整数无关;但由于整数看起来像指针,这“没那么糟”。现在,考虑以下示例:
如果你把MyUnion.List.Add(4)叫做MyUnion.List.Add,那你的表单会怎么处理?很明显,撞车。因为这是完全不安全的类型,但工会让你相信它是安全的。 |
![]() |
3
1
|
|
Robert King · Unity C#语法问题-转换位置 1 年前 |
![]() |
JBryanB · 如何从基本抽象类访问类属性 1 年前 |
|
law · 检查答案按钮的输入字符串格式不正确 2 年前 |
![]() |
i_sniff_ket · 在unity之外使用unity类 2 年前 |