0

我正在尝试检查我的范围内ListObject是否包含数字 9。我不断收到“无法将类型 'int' 隐式转换为 'bool'”。

if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[1, 1].value2 = 9)
{
    xlSheet.Cells[5, 5] = "YES!";
}
else 
{ 
    xlSheet.Cells[5, 5] = "NO!"; 
}

已解决的答案:

if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[1, 1].value2 == 9)
{
    xlSheet.Cells[5, 5] = "YES!";
}
else 
{ 
    xlSheet.Cells[5, 5] = "NO!"; 
}

在阅读了 C# 的运算符后,我发现“==”用于比较,而“=”用于赋值。

4

2 回答 2

5
if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[1, 1].value2 == 9)

你的 if 应该是这样的。区分===

于 2016-10-27T19:25:47.717 回答
3
if (xlWorkBook.Worksheets["Sheet1"].ListObjects["table1"].Range[1, 1].value2 == 9)

您使用的是赋值运算符而不是比较运算符。所以编译器认为你要赋值。它变成 int 语句而不是 bool。这就是为什么它给出错误无法将类型'int'隐式转换为'bool。所以你应该使用 == 而不是 =

于 2016-10-27T19:34:47.523 回答