C# Int32.TryParse错误

C# Int32.TryParse错误,c#,C#,下面的if语句中出现错误“无效表达式术语'int'”: if(Int32.TryParse(result.Tables[0].Rows[i][26].ToString(), out int number)) { command.Parameters["@evalpoints"].Value = number; } else { command.Parameters["@evalpoints"].Value = 0; } 我已经盯着它看了一个小时,不知道出了什么问题。在使用ou

下面的if语句中出现错误“无效表达式术语'int'”:

if(Int32.TryParse(result.Tables[0].Rows[i][26].ToString(), out int number)) 
{
    command.Parameters["@evalpoints"].Value = number;
}
else
{
    command.Parameters["@evalpoints"].Value = 0;
}

我已经盯着它看了一个小时,不知道出了什么问题。

在使用out参数变量时,您正在使用语法内联声明它。这只是在2017年3月C#7.0中引入的。如果您使用的是较旧的编译器或已将语言版本设置为低于7.0,则会出现所述错误,因为它不希望将新变量声明为函数参数。您可以通过将代码扩展为两行并分别声明out参数来解决此问题,这是引入此功能之前必须采用的方法:

int number;
if(Int32.TryParse(result.Tables[0].Rows[i][26].ToString(), out number))
// ...

使用兼容版本的C#/VS(并确保项目生成设置未选择“旧”版本的C#)
out int变量
——是在C#7.0中添加的。您是否在Visual Studio 2017上运行此功能?这是c#7的特点,所以我觉得这个问题很有帮助。我不知道为什么它被关闭为nrep或打字错误。它很容易复制,而且不是打字错误。