private double _value;public object Value{ get { return _value; }}
嗨,大家好只是进行代码审查,并在我们的代码库中注意到了它不是一个错字,但我关注的是调用getter时涉及的拳击,并且假设这个代码是一个生成数百次的类型,并且频繁调用getter我可以看到内存问题.
我的担忧是否与记忆有关?我的意思是,由于拳击,我们加倍了吗?
解决方法 是的,您展示的代码片段确实会导致拳击.您正在强制运行时将double转换为对象.如果您想向自己或同事证明,请检查已编译的IL以获取告示框和取消框说明.然而,尽管你在尽可能避免拳击时是正确的,但实际的性能损失并不总是像宣传那样重要.在对代码库进行重大更改之前,请花一些时间进行性能分析,以确保您花费时间的代码确实是性能瓶颈.
鉴于上面的具体示例,为什么您需要首先返回类型对象,这一点并不是特别清楚.由于您只是返回私有字段的值,您可以简单地将属性更改为返回类型double.
或者,您可以将属性转换为通用方法. (属性不能是通用的,但是方法可以,如果你在getter中进行计算密集的工作,它可能应该是一种方法.)泛型减轻了拳击的问题,但仍然允许你很大程度的返回什么类型的灵活性(类似于返回类型对象).
总结以上是内存溢出为你收集整理的c# – 拳击记忆问题全部内容,希望文章能够帮你解决c# – 拳击记忆问题所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)