C# 比较数组中的字符

C# 比较数组中的字符,c#,arrays,char,C#,Arrays,Char,为了做一些家庭作业,我需要做一个井字游戏。 我在比赛中没有任何问题,但现在我需要控制一名球员是否获胜。为此,我需要比较数组中存在的一些字符。 因此,我设置了一个带有“if”的测试,但它向我发送了一个错误(VisualStudio中的CS0019),表示我无法比较char和bool输出。 我怎样才能避免这种情况 if ((casesMorpion[0, 0]) != (casesMorpion[1, 0]) != (casesMorpion[2, 0])) { V1 = true; } 您不

为了做一些家庭作业,我需要做一个井字游戏。 我在比赛中没有任何问题,但现在我需要控制一名球员是否获胜。为此,我需要比较数组中存在的一些字符。 因此,我设置了一个带有“if”的测试,但它向我发送了一个错误(VisualStudio中的CS0019),表示我无法比较char和bool输出。 我怎样才能避免这种情况

if ((casesMorpion[0, 0]) != (casesMorpion[1, 0]) != (casesMorpion[2, 0]))
{
  V1 = true;
}
您不能有
(casesMorpion[0,0])!=(casesMorpion[1,0])!=(casesMorpion[2,0])
在一行上,并期望它能正常工作

您得到错误是因为
(casesMorpion[0,0])!=(casesMorpion[1,0])
是一个
bool
,您尝试将其与
(casesMorpion[2,0])
进行比较,后者是一个
字符

您应该使用逻辑and(
&&
)将其分为两个条件:

if(casesMorpion[0,0]!=casesMorpion[1,0]&&casesMorpion[1,0]!=(casesMorpion[2,0]))
{
V1=真;
}
或者别的什么,因为我不知道你到底想测试什么。

你不能有
(casesMorpion[0,0])!=(casesMorpion[1,0])!=(casesMorpion[2,0])
在一行上,并期望它能正常工作

您得到错误是因为
(casesMorpion[0,0])!=(casesMorpion[1,0])
是一个
bool
,您尝试将其与
(casesMorpion[2,0])
进行比较,后者是一个
字符

您应该使用逻辑and(
&&
)将其分为两个条件:

if(casesMorpion[0,0]!=casesMorpion[1,0]&&casesMorpion[1,0]!=(casesMorpion[2,0]))
{
V1=真;
}

或者别的什么,因为我不知道你到底想测试什么。

我同意@Corentin Pane answer。他比我早几秒钟回答

下面这样的事情可能会有所帮助

var expectedChar = casesMorpion[0, 0]; 
if ((expectedChar != casesMorpion[1, 0]) || (expectedChar != casesMorpion[2, 0]))
{
    V1 = true;
}

!=两个操作数之间的运算产生布尔值。所以现在它将变成布尔char这将导致编译错误。

我同意@Corentin Pane的回答。他比我早几秒钟回答

下面这样的事情可能会有所帮助

var expectedChar = casesMorpion[0, 0]; 
if ((expectedChar != casesMorpion[1, 0]) || (expectedChar != casesMorpion[2, 0]))
{
    V1 = true;
}

!=两个操作数之间的运算产生布尔值。所以现在它将变成布尔char这将导致编译错误。

这在编程上没有问题。只是我认为比较操作必须与OR和not相结合,这在编程上很好。只是我认为比较运算必须与OR和not以及