Nullable struct vs class

时间:2009-06-12 12:06:46

标签: c# .net

我有一个包含两个字段的简单结构;一个存储一个对象,另一个存储DateTime。我这样做是因为我想将对象存储在Dictionary中,但也有一个DateTime标记。

我有一个返回我的结构的方法,我现在已经确定该方法也应该能够返回null,所以我使我的结构可以为空。我现在想知道我是否应该让我的结构成为一个类,所以它是一个引用类型?

2 个答案:

答案 0 :(得分:10)

在这种情况下,是的,让你的结构成为一个类可能更清楚。

就理由而言,你实际上是在创建一个专门的Tuple。有趣的是,库设计者选择使.Net 4 Tuple成为一个类而不是结构。 (该页面是元组创建者并链接到各种元组实例类)

答案 1 :(得分:6)

要么实际上都应该没问题(只要struct是不可变的)。 DateTime和参考不足以使其超大。

我假设你在字典中使用它作为(而不是)?如果用作密钥,则无论EqualsGetHashCode()如何,都需要覆盖structclass