我有一个包含两个字段的简单结构;一个存储一个对象,另一个存储DateTime。我这样做是因为我想将对象存储在Dictionary中,但也有一个DateTime标记。
我有一个返回我的结构的方法,我现在已经确定该方法也应该能够返回null,所以我使我的结构可以为空。我现在想知道我是否应该让我的结构成为一个类,所以它是一个引用类型?
答案 0 :(得分:10)
在这种情况下,是的,让你的结构成为一个类可能更清楚。
就理由而言,你实际上是在创建一个专门的Tuple
。有趣的是,库设计者选择使.Net 4 Tuple
成为一个类而不是结构。 (该页面是元组创建者并链接到各种元组实例类)
答案 1 :(得分:6)
要么实际上都应该没问题(只要struct
是不可变的)。 DateTime
和参考不足以使其超大。
我假设你在字典中使用它作为值(而不是键)?如果用作密钥,则无论Equals
与GetHashCode()
如何,都需要覆盖struct
和class
。