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

时间:2011-11-29 21:43:48

标签: c# compiler-construction

我在C#

中看到很多关于空语句的问题
      string retVal="mystring";;

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

3 个答案:

答案 0 :(得分:5)

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

答案 1 :(得分:5)

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

所以是的,它们绝对被删除了。

答案 2 :(得分:4)

是的,因为分号只是语法。它只是告诉解析器语句结束的位置。解析器将删除“空语句”,就像词法分析器删除不需要的空格一样。