点击上方蓝字关注我们!
C#中struct结构体是一个特殊的存在,值类型栈内拷贝。struct和class定义上有些相似,区别主要是值类型和引用类型的区别。Winform中涉及到本地代码的地方大量使用了struct,这很大程度上是为了代码移植的需要,不能作为我们写代码的规范参考。我们有时感觉结构比较简单的类改为struct可能会提高性能,但这种感觉在绝大多数情况下其实是错误的。那么我们自己在编写代码的时候究竟在什么情况下适合定义struct而不是class呢?
选用struct的原则
通过阅读微软的技术文章可以了解到选择使用struct的一些准则。
考虑 定义struct而非class,如果类型的实例很小而且通常存活期都很短,或者一般都嵌入到其它对象中使用
避免 定义struct 除非 类型满足以下全部特征:
逻辑上表达了一个单一值,类似基本数据类型(int, double)
实例大小低于16字节
不可改变
不会被频繁装箱
个人总结了一些使用struct的建议:
对于初学者或者一般情况,请使用class不要考虑struct。当程序需要考虑性能而进行优化的阶段再考虑struct问题