struct用法_C#语言struct结构体适用场景和注意事项

点击上方蓝字关注我们!

44c9ee5a6970d293343326ab359fa91b.png

C#中struct结构体是一个特殊的存在,值类型栈内拷贝。struct和class定义上有些相似,区别主要是值类型和引用类型的区别。Winform中涉及到本地代码的地方大量使用了struct,这很大程度上是为了代码移植的需要,不能作为我们写代码的规范参考。我们有时感觉结构比较简单的类改为struct可能会提高性能,但这种感觉在绝大多数情况下其实是错误的。那么我们自己在编写代码的时候究竟在什么情况下适合定义struct而不是class呢?

选用struct的原则

通过阅读微软的技术文章可以了解到选择使用struct的一些准则。

考虑 定义struct而非class,如果类型的实例很小而且通常存活期都很短,或者一般都嵌入到其它对象中使用

避免 定义struct 除非 类型满足以下全部特征:

  • 逻辑上表达了一个单一值,类似基本数据类型(int, double)

  • 实例大小低于16字节

  • 不可改变

  • 不会被频繁装箱

个人总结了一些使用struct的建议:

  • 对于初学者或者一般情况,请使用class不要考虑struct。当程序需要考虑性能而进行优化的阶段再考虑struct问题

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值