我见过很多关于 C# 中空语句的问题
string retVal="mystring";;
我的问题是:如果我们不删除空语句,编译器会在优化阶段删除它们吗?
是的。您可以通过编译带有或不带有空语句的应用程序并检查编译后的应用程序上的 md5 校验和来亲自查看这一点。
空语句(如您引用的语句)通常会被解析器识别,甚至不会进入抽象语法树。
所以是的,它们被绝对删除了。
是的,因为分号只是语法。它只是告诉解析器语句在哪里结束。解析器将删除“空语句”,就像词法分析器删除不需要的空格一样。