通过方法设置字段和通过属性设置字段之间是否存在已知的性能差异?
(我只是想知道实现一个属性是否会向IL发出一些额外的东西,这使得PROPERTY工作比直接调用一个设置值的方法更慢)
答案 0 :(得分:2)
属性是方法。如果使用get / set声明名为MyProperty
的属性,则编译器将发出两个方法:get_MyProperty
和set_MyProperty
,将它们装饰为其他人(将使用该属性的人)可以理解该方法是属性的getter / setter。例如,托管C ++的第一个版本没有隐藏这个技巧。看一下方法和属性设置器的反编译版本(例如),你会发现它们没有什么不同,你在代码中看到的就是糖,使它们“很好”。