装箱拆箱

http://blog.csdn.net/xiven/article/details/5378470


(附:在托管C++中,允许直接取加拆箱时第一步得到的实例引用,而直接更改,但C#不行。) 

关于把struct通过interface来直接修改装箱后的struct


通过接口方式,可以达到相同的效果。 实现如下: 
  interface IChange 
  { 
    void Change(Int32 x); 
  } 
  struct A : IChange 
  { 
   … 
  } 
//调用:
  ((IChange)o).Change(200);//改掉了吗?改掉了。 为啥现在可以改? 在将o转型为IChange时,这里不会进行再

次装箱,当然更不会拆箱,因为o已经是引用类型,再因为它是IChange类型,所以可以直接调用Change,于是,更

改的也就是已装箱对象中的字段了,达到期望的效果。 


posted on   norsd  阅读(114)  评论(0编辑  收藏  举报

编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示