【发布时间】:2017-11-03 22:58:42
【问题描述】:
我有一个项目使用.Net 4.0.(目标框架是.Net 4)。
我使用Visual Studio 2017编译源码,使用如下代码:
if(int.TryParse(inputText, out int x))
StartAnotherMethod(x);
它在我的计算机上成功编译,所以我将它提交到存储库并等待构建服务器也编译。
令人惊讶的是,它有编译错误。
错误 CS1525:无效的表达式术语“int”
错误 CS1003:语法错误,预期为 ','
我在一个在线编译器中检查了它。它使用 .Net 4.5,也显示编译错误。
https://dotnetfiddle.net/pibxC2
编译错误(第 9 行,第 32 列):无效的表达式术语 'int'
编译错误(第 9 行,第 33 列):;预计
编译错误(第 9 行,第 33 列):无效的表达式术语 ')'
编译错误(第 9 行,第 34 列):;预计
编译错误(第 9 行,第 34 列):无效的表达式术语 ')'
编译错误(第 9 行,第 35 列):;预计
正如我所读到的,语言特性不需要新的框架,所以它应该可以毫无问题地编译。
我错过了什么?
【问题讨论】:
-
您没有使用 C# 7 的编译器。将编译器更改为 Roslyn。
-
您的构建服务器使用哪个编译器?您需要 VisualStudio 2017 的编译器来编译您的项目。
-
您的构建服务器使用什么编译器?这些功能取决于编译器的版本,而不是框架的版本。
-
你做过类似c-sharpcorner.com/article/…的事情吗?
-
转到您项目的属性并查看
Build => Advanced并将Language version更改为C# 7.0。这将在构建机器上导致更明确的编译错误。