每当我在方法中有局部变量时,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/