比较数组中的字符

时间:2019-10-13 13:36:39

标签: c# arrays char

对于一些家庭作业,我需要制作一个Tic-Tac-Toe游戏。 我制作游戏没有问题,但是现在我需要控制玩家是否获胜。为此,我需要比较数组中存在的一些Char。 因此,我使用“ if”设置了一个测试,但它向我发送了一个错误(Visual Studio中为CS0019),该错误表明我无法比较char并期望布尔输出。 我该如何规避?

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

2 个答案:

答案 0 :(得分:1)

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

由于(casesMorpion[0, 0]) != (casesMorpion[1, 0])bool,而您将其与(casesMorpion[2, 0])char进行比较,因此您得到了错误。

您应使用逻辑和&&将其分为两个条件:

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

或者其他什么,因为我不知道您要测试什么。

答案 1 :(得分:1)

我同意@Corentin Pane的回答。他在我面前几秒钟前回答了

以下类似的内容可能会有所帮助

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

!=两个操作数之间的运算给出布尔值。所以现在它将变为bool!= char,这将导致编译错误。