这应该是一个结构还是更好的 class(9 个值类型属性和 1 个参考值)

Should this stll be a struct or better a class(9 value type properties and 1 reference value)

假设我有一个具有 9 个属性 的结构,其中 return 一个值类型作为其结果,并且在该结构中我还有一个 属性 return 是一个引用类型:IEnumerable 像这样:

public IEnumerable<KeyValuePair<String, String>> Dostuff
        {
            get
            {
                //doing some operations in here
                return _valueToReturn;
            }
        }

使用IEnumerable需要堆space,但实际上结构是基于栈的,所以我的情况怎么办?

顺便说一句,结构是不可变的。

有一个 page 显示了如何在结构和 class 之间进行选择。

据我了解,如果结构中所有 字段 的总大小小于 16 字节,则将其保留为结构比将其更改为 class 更好.属性的数量无关紧要。

在您的情况下,将类型声明为 class

如果您不知道或不确定,请将类型定义为 class

如果类型是基本类型的小型聚合,那么 struct 可能会提供更好的性能。但是,收益小于风险,除非您确定使用 class.

那么,你怎么能确定,用有代表性的数据,在有代表性的硬件上,在发布模式下编译等来尝试和衡量性能等等。如果你真的关心性能,你无论如何都必须这样做.

如果您不想这样做,请使用 class