我正在构建一个应用程序,我需要处理图表中的位置。这个位置有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 个字节?任何问题?