".NET 选择结构体和类之间的区别"
".NET 选择结构体和类之间的区别"
这个问题在此已有答案:
想知道有人能否提供一些建议或示例,说明在.NET中何时最好使用结构体或类,反之亦然。
我已经做了一些背景阅读,并了解了两者之间的区别,即结构体存储在堆栈上,类存储在堆上等。但是我还没有找到一些明确的例子,其中一个会比另一个更具有优势。
非常感谢
admin 更改状态以发布 2023年5月22日
除非您有非常特定的原因使用struct
,否则请使用class
。有关具体原因,请参阅关于 Struct 的问题。
编辑:使用struct
而不是class
的一个可能优势是,您永远不会有null
实例。请参阅有没有一种方法要求提供给方法的参数不为 null?
引用同一问题的一个好答案(何时应该使用struct而不是class?):
MSDN给出了答案:选择类和结构之间的选择。
基本上,该页面为您提供了一个包含4项检查内容的清单,并建议除非您的类型符合所有标准,否则要使用类。
除非该类型具有以下所有特征,否则不要定义结构:
- 逻辑上表示单个值,类似于原始类型(整数,双精度等)。
- 它具有小于16字节的实例大小。
- 它是不可变的。
- 它不必经常收纳。