首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如果这个stll是一个结构或更好的类(9个值类型属性和1个引用值)

如果这个stll是一个结构或更好的类(9个值类型属性和1个引用值)
EN

Stack Overflow用户
提问于 2016-04-14 10:46:15
回答 2查看 63关注 0票数 1

假设我有一个带有9属性的结构,它返回一个值类型作为其结果,而在该结构中,我也有一个返回引用类型的属性:IEnumerable

代码语言:javascript
复制
public IEnumerable<KeyValuePair<String, String>> Dostuff
        {
            get
            {
                //doing some operations in here
                return _valueToReturn;
            }
        }

使用IEnumerable将需要堆空间,但实际上结构是基于堆栈的,那么在我的情况下该怎么办呢?

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

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-04-14 10:54:22

有一个页面展示了如何在struct和class之间进行选择。

据我所知,如果结构中所有字段的总大小()小于16个字节,则将其保持为struct比将其更改为类更好。属性的数量并不重要。

票数 0
EN

Stack Overflow用户

发布于 2016-04-14 11:09:00

在您的示例中,将类型声明为class

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

如果该类型是原语类型的小聚合,那么struct可能提供更好的性能。但是,除非您确实使用了class,否则好处要比风险小。

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

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36620781

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档