-1

Main我在我的方法中写道:

zeichnen.OpenField(spiel.testReturner, spiel.testReturnerZwei);

错误是:参数1:

  • 无法从“方法组”转换为“int[ , ]”
  • 参数 2:无法从 'method group' 转换为 'bool[ , ]'
  • 'Minesweeper.Draw.OpenField(int[ , ], bool[ , ])'的最佳重载方法匹配有一些无效参数

在我的Game课堂上,我有这个:

public int testReturner()
{
    return _minenArray[5, 5];
}

public int testReturnerZwei()
{
    return _boolArray[5, 5];
}

我的Drawing类中的方法是这样的:

public void OpenField(int[,] minenArray, bool[,] boolArray)

GameClass 中的 bool 返回有这个错误:

无法将类型“bool”隐式转换为“int”

4

5 回答 5

4

这意味着您没有调用方法,并且方法的返回值不适用于OpenField.

尝试修改您的方法,使其看起来像这样。这是您提供的代码的有根据的猜测。

public int[,] testReturner()
{
  return new int[5, 5]; // or _minenArray
}

public bool[,] testReturnerZwei()
{
  return new bool[5, 5]; // or _boolArray
}
于 2013-11-07T13:22:51.347 回答
1

像这样改变你的游戏类

public int[,] testReturner
{
  get{return _minenArray;}
}

public bool[,] testReturnerZwei
{
  get{return _boolArray;}
}

更新
使用

zeichnen.OpenField(spiel.testReturner, spiel.testReturnerZwei);
于 2013-11-07T13:26:19.420 回答
0

这有很多问题。

首先,您传递的是方法而不是实际参数。其次,您的testReturnerandtestReturnerZwei方法返回 SINGLE 数值,而OpenField您尝试调用的方法需要一个整数值数组和一个布尔值数组。

如果不知道确切的上下文以及您正在尝试做什么,就很难说出需要做什么才能使您的代码完全按照您想要的方式工作。

这是我的快速建议:

public int[,] testReturner
{
    //assuming _minenArray is an array of arrays, as you still need to return an array
    get { return _minenArray[5, 5]; }
}

public bool[,] testReturnerZwei
{
    //assuming _boolArray is an array of arrays, as you still need to return an array
    get { return _boolArray[5, 5]; }
}

这会将testReturnertestReturnerZweifrom 方法转换为参数。另外,请注意代码中的注释。

于 2013-11-07T13:31:07.993 回答
0

你很可能想写:

zeichnen.OpenField(spiel.testReturner(), spiel.testReturnerZwei());

你没有调用这些方法。

于 2013-11-07T13:23:21.730 回答
-1
public int testReturner()
{
  return _minenArray[5, 5];
}

public bool testReturnerZwei()
{
  return _boolArray[5, 5];
}

用这个替换,这是类型转换错误,你用 int 代替 bool。

于 2013-11-07T13:28:57.077 回答