我今天遇到了这段代码,这让我感到奇怪: 连续访问对象的公共字段更好还是将其缓存在局部变量中更有意义?
void AddName(Class object) {
if (object.name != null && !list.Contains(object.name)) {
list.Add(object.name);
}
}
或
void AddName(Class object) {
string name = object.name;
if (name != null && !list.Contains(name)) {
list.Add(name);
}
}
我想知道在C#中,多次访问公共字段是否比缓存到局部变量并在每次调用该方法时分配内存更好或更糟。
谢谢您的回答!
答案 0 :(得分:0)
The compiler can't optimize the first example,但您不会注意到两个变体之间的区别。在性能上没有可测量的差异,并且两个变体消耗相同的内存。
以易于理解和快速理解的方式设计代码对您(和您的团队)而言更为重要。