问题描述
作为该物业只是引擎盖下的方法,这是可以理解的逻辑,他们可能会执行的性能可能会或可能不会提高性能 - 所以为什么JIT需要检查的方法是值得的内联这是可以理解的。
自动属性(然而据我了解),不能有任何的逻辑,并简单地返回或设置基础字段的值。据我所知,自动属性是由编译器和JIT就像任何其他方法治疗。
(下一切都将依赖于这样的假设上段是正确的。)
值类型的属性显示出比变量本身不同的行为,而引用类型的属性按说应该具有完全相同的行为直接访问底层变量。
//自动属性范例
公共对象MyObj中获得{;私人集; }
是否有任何情况下自动属性为引用类型
可以显示性能由内联打?
。如果没有,是什么妨碍任何编译器或自动内联他们JIT?
请注意:据我所知,性能提升很可能是微不足道的,特别是当如果使用足够多次的JIT可能无论如何内联 - 但小的增益可能是,它似乎是合乎逻辑,这样的看似简单的优化将考虑出台。
That automatic properties cannot have any logic is an implementation detail, there is not any special knowledge of that fact that is required for compilation. In fact, as you say auto properties are compiled down to method calls.
Suppose auto propes were inlined and the class and property are defined in a different assembly. This would mean that if the property implementation changes, you would have to recompile the application to see that change. That defeats using properties in the first place which should allow you to change the internal implementation without having to recompile the consuming application.
这篇关于为什么不自动属性默认情况下,内联?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!