我编写代码并得到奇怪的结果 - 整数我是8:
unsafe
{
int i = sizeof(Point);
}
Run Code Online (Sandbox Code Playgroud)
检查struct Point后,我找到了这个字段:
public bool IsEmpty { get; }
public int X { get; set; }
public int Y { get; set; }
Run Code Online (Sandbox Code Playgroud)
位数学:32 + 32 + 1 = 65位,因此> 8字节
那么,为什么sizeof返回8,而不是9?
谢谢
Joe*_*oey 10
IsEmpty是一个属性,而不是一个领域.属性只是幕后的方法,因此它们不是结构大小的一部分.
该框架实施的Point用途只有两个属性:
private int x;
private int y;
Run Code Online (Sandbox Code Playgroud)
Empty 实现为
[Browsable(false)]
public bool IsEmpty {
get {
return x == 0 && y == 0;
}
}
Run Code Online (Sandbox Code Playgroud)
这两个int字段占用8个字节 - 一切都很好.
| 归档时间: |
|
| 查看次数: |
223 次 |
| 最近记录: |