方法不适用于我的tic tac toe游戏

Rob*_*ers 0 c# winforms

如果我传递此代码,那么它的工作原理.

if (textBox1.Text == "1:1" && xOneOne == false && oOneOne == false)
{
    oOneOne = true;
    xOneOne = false;
    pictureBox1.Refresh();
}
else
{
    MessageBox.Show("Lauks ir aiznjemts xDDDD");
}
Run Code Online (Sandbox Code Playgroud)

但我想创建Method,所以我不需要一遍又一遍地复制相同的代码.该方法无效.我想它不会刷新图片框,因为我没有得到图像.

我的方法:

private void Aplis(TextBox textBox, string koordinatas, bool xVertiba, bool oVertiba, PictureBox PictureBox)
{
    if (textBox.Text == koordinatas && xVertiba == false && oVertiba == false)
    {
        oVertiba = true;
        xVertiba = false;
        PictureBox.Refresh();
    }
    else
    {
        MessageBox.Show("Lauks ir aiznjemts xDDDD");
    }
}
Run Code Online (Sandbox Code Playgroud)

我尝试这样称呼它而不是我的第一个代码:

Aplis(textBox1, "1:1", xOneOne, oOneOne, pictureBox1);
Run Code Online (Sandbox Code Playgroud)

Pat*_*man 7

您在方法中设置了两个布尔值:

oVertiba = true;
xVertiba = false;
Run Code Online (Sandbox Code Playgroud)

这些不设置传入的实际值,只是设置方法内的值.您可以将它们传递给ref,这将使您能够更改它们:

private void Aplis( TextBox textBox
                  , string koordinatas
                  , ref bool xVertiba
                  , ref bool oVertiba
                  , PictureBox PictureBox
                  )
{ }
Run Code Online (Sandbox Code Playgroud)

请注意,ref在传递值时,您也必须使用关键字.

此外,xVertiba == false可以简化为!xVertiba,xVertiba == true就像xVertiba.