我正在查看第三方外包公司提供给我们的一些代码,并遇到了这个小宝石:
try
{
int i = strOriginalData.IndexOf("\r\n");
////System.Diagnostics..EventLog.WriteEntry("i", i.ToString());
}
catch (System.Exception ex)
{
////System.Diagnostics..EventLog.WriteEntry("ex", ex.Message);
}
我的问题是编译器会完全优化这个吗?当我在 Reflector 中查看已编译的程序集时,它会显示:
try
{
i = this.strOriginalData.IndexOf("\r\n");
}
catch (Exception exception1)
{
ex = exception1;
}
i 的声明已移至方法的顶部,并且 Exception 类型的附加声明也在方法的顶部。
所以,由于这段代码并没有真正做任何事情,我想知道编译器是否足够聪明,可以看到这段代码什么都不做并且可以优化它。