我现在正在使用其他人的代码,ReSharper 向我发出了很多关于冗余代码的警告,例如:
- 未使用的指令
- 数组创建表达式(
new string[]{xxx,xxx,xxx}
而不是{xxx,xxx,xxx}
) - 显式创建委托(delegate)(
new EventHandler(xxx)
而不是xxx
) - 限定符(使用指令时用
System.Windows.Forms.Form
代替Form
)
有很多代码需要处理,所以我不确定是否值得遍历所有代码并删除所有冗余代码。
考虑到这一点,我想问这些警告是否只是为了改进代码风格(为了美观),还是这些代码实际上执行了额外的操作并稍微影响了性能?
最佳答案
这取决于。
缩写数组初始值设定项我很确定会编译为相同的 CIL
显式委托(delegate)创建我不太确定,但我期望相同的性能
不需要的限定符我非常确定会编译为相同的 CIL。
但是
计算机的时间通常远没有您的时间重要,或者其他人阅读代码的时间重要。取一段代码,将所有 int
替换为 System.Int32
,则读取时间会更长,并且读取时间也会更长。了解,这些也是重要的“性能”指标。
程序必须编写供人们阅读,并且只是顺便让机器执行,就像一个比我聪明得多的人曾经写过的那样。
关于performance - 冗余表达式、指令和限定符是否会影响性能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37429180/