每当我在方法中有局部变量时,ReSharper 建议将它们转换为常量:

// instead of this:
var s = "some string";
var flags = BindingFlags.Public | BindingFlags.Instance;

// ReSharper suggest to use this:
const string s = "some string";
const BindingFlags flags = BindingFlags.Public | BindingFlags.Instance;

鉴于这些确实是常量值(而不是变量),我理解 ReSharper 建议将它们更改为常量。

但除此之外,使用 const 时是否还有其他优势(例如更好的性能),这证明使用 const BindingFlags 而不是方便且可读的 var 关键字是合理的?

顺便说一句:我刚刚在这里发现了一个类似的问题: Resharper always suggesting me to make const string instead of string ,但我认为它更多地是关于一个类的字段,我的问题是关于局部变量/常量。

最佳答案

如果您尝试为常量赋值,编译器将抛出错误,从而可能防止您意外更改它。
此外,使用常量与变量相比,通常会有很小的性能优势。这与它们被编译为 MSIL 的方式有关,根据 this MSDN magazine Q&A :

关于c# - 在方法中使用 const 而不是变量的优点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5833912/

10-16 20:33