方法''没有重载需要1个参数

时间:2017-04-06 14:04:52

标签: c# tic-tac-toe

嗯,我的问题基本上就是它在标题中所说的内容。我正在尝试将我的Pl​​ayer2类的bool值称为我们在学校的Tic Tac Toe项目。我认为值得一提的是我使用“Player Player1,Player2;”在Form1.cs的开头创建我的类的两个实例,Player。我在互联网上阅读了多篇关于此的帖子,但所有人都试图调用比他们提供的参数更多的参数。我不知道bool值的真或假是多于一个。

提前致谢。

  

我的一个按钮出现此问题。

public void Btn1_Click(object sender, EventArgs e) >{

        {
            if (click1 == 0) 
            {
            if (Player2.GetActive(true))//(turn == 0)
                {
                 Btn1.Text = "X";
                }
                else
                {
                    >Btn1.Text = "O";
                }
                //turn++;
                click1++;
            }
            else
            {
                Btn1.Text = Btn1.Text;
           }
            display();
            checkit();
       }
    }
  

这是我的玩家类。

` public class Player
{
    //Characteristics
    string name;
    int points;
    bool Active;

    //Constructor
    public Player() { points = 0; Active = true; }

    //Methods
    public void SetName(string n) { name = n; }
    public string GetName() { return name; }
    public void SetPoints(int p) { points = p; }
    public int GetPoints() { return points; }
    public void SetActive(bool a) { Active = a; }
    public bool GetActive() { return Active; }`

3 个答案:

答案 0 :(得分:2)

你有代码:

<div class="main-div">
    <div class="working-area">
      <div class="container">
        <div class="top">
          some text some text some text some text some text some text some text some text some text some text some text some text
        </div>
        <div class="bottom">
          <div class="table-panel">
            <table>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
              <tr>
                <td>cell text</td>
              </tr>
            </table>
          </div>
        </div>
      </div>
    </div>
    <div class="footer">footer text</div>
  </div>

但是你定义了活动为

Player2.GetActive(true)

所以你没有用参数定义GetActive是正确的。

答案 1 :(得分:0)

下面,

if(Player2.GetActive(true))

您正在向方法true传递一个额外的参数(GetActive)。正如我们从GetActive的方法声明中看到的那样,它不需要参数:

public bool GetActive() { return Active; }
//                   ↑
//              empty parentheses

我认为你的意思是&#34;如果Player2.GetActive()是真的......&#34;对?如果是true,您不需要指定所需的值,只需这样做就可以了:

if (Player2.GetActive())

如果您想检查它是否为假,请在通话前添加!以取消结果:

if (!Player2.GetActive())

答案 2 :(得分:0)

与BugFinder一样,您使用该方法获取Active-Value,而不是使用该方法来设置值。

所以改变

Player2.GetActive(true)

Player2.SetActive(true)

正如另外一样:
由于我们在这里使用C#并且您的许多方法都被称为set和get,我建议您将这些方法更改为属性:

public string Name 
{
  get { return name; }
  set { name = value; }
}

public int Points 
{
  get { return points; }
  set { points = value; }
}

public bool Active 
{
  get { return active; }
  set { active = value; }
}

现在,当您想设置值时,可以输入

Player2.IsActive = true;

并检查值的简单类型代码,如

If(Player2.IsActive)
  //Do Stuff