C#编译器是否优化空语句

abb*_*bas 2 c# compiler-construction

我在C#中看到很多关于空语句的问题

      string retVal="mystring";;
Run Code Online (Sandbox Code Playgroud)

我的问题是:如果我们不删除空语句,编译器会在优化阶段删除它们吗?

小智 5

是.您可以通过使用和不使用空语句编译应用程序并检查已编译应用程序上的md5校验和来自行查看.

  • +1 ......但使用Reflector,ILSpy等可能是一种更好的方法来向自己"证明"空语句已被删除.由于不一定与空语句相关的更改,MD5总和可能会发生变化. (4认同)

riw*_*alk 5

空语句(就像你引用的那样)通常被解析器识别,甚至从不进入抽象语法树.

所以是的,他们绝对被删除了.