2009-08-26 105 views
0

当Visual Studio灰显出一些代码并告诉你它是多余的,这是否意味着编译器会忽略这段代码,还是会编译这段代码?换句话说,这个冗余的代码是不会被解释的或者它会是什么?还是它只是提醒人们,代码根本不是必需的?冗余代码警告的含义

如果我在我的类/结构等中留下冗余代码,它会对性能产生影响吗?

感谢

回答

4

如果代码是多余的,没有必要进行编译,而是把它留在不会对性能产生任何影响。

由于编译器在Visual Studio中将代码标识为冗余,因此它不会被编译到IL或机器代码中。

在您的项目中留下多余的代码是不好的做法。如果将来需要代码,则应该从源代码存储库中的旧版本文件中获取它。

0

C#不是一种解释型语言,它是一种JITted(即时编译)语言,这意味着它是在运行时从MSIL编译而来的。因此,JITter可以进行分析以确定代码是否冗余,然后将其删除。

将有两次机会,以删除冗余代码

  1. 编译C#为MSIL在Visual Studio中。
  2. 在运行(或安装)时将MSIL运行到组件。

因为C#编译器本身已经标记了这个问题,这意味着代码可能会在(1)期间被删除。

所以是的,它只是很好,提醒你。大多数编译器在不告诉编程人员的情况下以多种不同的细微方式删除多余的代码,但在某些明显的情况下,告诉程序员是个好主意。

0

不,它没有编译。

在测试时可能会驱使我坚果,我想使用调试器“设置下一个语句”命令某些语句,但它没有编译。