当前位置:  开发笔记 > 编程语言 > 正文

使用反射设置C#struct/class字段时是否可以避免装箱?

如何解决《使用反射设置C#struct/class字段时是否可以避免装箱?》经验,为你挑选了0个好方法。

假设我有一个原始值,我需要使用反射分配给某个字段.我确信该字段具有相同的原始值类型.

是否有可能以某种方式设置这个值没有拳击?

void SetFloat(object o, string name, float val)
{
  var type = o.GetType();
  var fld = type.GetField(name);
  fld.SetValue(o, val /*boxing happens here*/);
}

PS这不是关于延迟,而是关于可能的GC压力.我正在使用Unity3D,它使用的是旧的Mono版本,而后者又使用非常优化的GC实现.每个额外的内存分配计数:(

PPS我正在构建自己的基于C#的解释器,避免反射似乎几乎不可能.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有