我正在构建一个应用程序,我需要处理图表中的位置。这个位置有X、Y的值和北、东、南、西的方向。我认为这个位置可能是Struct因为它代表该图中的单个值。
我研究并思考Structs并发现这些规则可以使用Struct:
- 它在逻辑上表示单个值,类似于原始类型(整数、双精度等)。
- 它的实例大小小于 16 字节。
- 它是不可变的。
- 它不必经常装箱。
这是我未完成的示例Struct:
public struct Position
{
public long PositionX { get; set; }
public long PositionY { get; set; }
public CompassPoint CompassPoint { get; set; }
}
public enum CompassPoint : byte
{
North,
East,
South,
West
}
我想知道如何计算我的字节大小Struct以及如何知道它是否不可变?
谢谢。
更新:
好的。根据回复,我似乎Struct通过了 16 个字节,因为只有两个long有 16 个字节 + 1 个字节CompassPoint。
Struct但是一个额外的问题是:使用16 字节且不可变的 a 我获得了什么?看看DateTime Struct,它似乎有超过 16 个字节?任何问题?