Nullable struct vs class

Cha*_*lie 13 .net c#

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

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

Gre*_*g D 10

在这种情况下,是的,使您的结构成为一个类可能更清晰.

至于理由,你实际上是在创造一个专业化的Tuple.值得注意的是,图书馆设计人员选择将.Net 4Tuple作为一个类而不是一个结构.(该页面是元组创建者并链接到各种元组实例类)

  • 当你到达Tuple <,,,,,,,>(8 args)时,"元组作为一个类"可能主要是为了保持一致 - 这几乎肯定会作为一个结构超大 - 特别是如果任何T是不平凡的. (3认同)

Mar*_*ell 6

实际上要么是好的,只要它struct是不可变的.A DateTime和参考不足以使其超大.

我假设你使用它作为字典中的(而不是)?如果用作键,你需要重写EqualsGetHashCode(),不管structVS class.