这是一个菜鸟问题。我有一个简单的财产
bool IsRoot { get { return parent==null; } }
我从类(和派生类)中的其他属性和方法多次调用
我喜欢保持这样,因为它使代码可读(对我来说),但我担心所有IsRoot
调用都会减慢我的速度,因为它们可能不会在最终版本代码中“内联”。我所说的“内联”是指它们被parent==null
评估的副本代替get_IsRoot()
.
有人可以向我解释何时(或是否)在 C# 中内联属性,并且对于面向性能的应用程序是否应避免使用属性?
EDIT_1:简短的回答是:属性转换为纯函数调用,它们可能会或可能不会被内联,具体取决于 JIT 的决定。相信系统会做出正确的选择,不要担心可能会影响 5%-10% 级别的事情,除非使用分析器并且最终结果针对性能进行了微调。
感谢 SO 社区的链接,我希望有办法奖励多个正确答案。对不起,我不得不选择一个。