C# 无法隐式转换类型';字符串[,]和#x27;至';字符串';返回主C时#
哟。我是游戏开发的初学者,我正在制作一个控制台TictaToe游戏,我试图将我游戏的board类的board网格传递到main,因为我想把gameboard放在它自己的类中。我制作了一个2D数组来保存电路板的字符,但返回它时遇到了问题,错误是“无法将类型'string[,]'隐式转换为'string'C# 无法隐式转换类型';字符串[,]和#x27;至';字符串';返回主C时#,c#,arrays,class,2d,return,C#,Arrays,Class,2d,Return,哟。我是游戏开发的初学者,我正在制作一个控制台TictaToe游戏,我试图将我游戏的board类的board网格传递到main,因为我想把gameboard放在它自己的类中。我制作了一个2D数组来保存电路板的字符,但返回它时遇到了问题,错误是“无法将类型'string[,]'隐式转换为'string' private int maxRow = 3; private int maxColumn = 3; private string[,] boardGrid = new string[3, 3];
private int maxRow = 3;
private int maxColumn = 3;
private string[,] boardGrid = new string[3, 3]; //create the game board grid
//Initialise board method
public string InitBoard () //make an object of the board class, returns a 2d array because the board is essentially a grid
{
//initialise board
for (int row = 0; row < maxRow; row++)
{
for (int column = 0; column < maxColumn; column++)
{
boardGrid [row, column] = ".";
}
}
return boardGrid; //<---[The problem happens here!]
}
我找不到关于这方面的任何其他问题,但如果有问题,请随时告诉我。干杯!您在这里遇到了一些问题:
- 在构造之后,通常不需要调用单独的方法来初始化对象
- 您试图从声明为返回
的方法返回string
。这是行不通的string[,]
- 您试图将
的值分配给string
类型的变量。这不起作用Board
- 你把一个对象内的状态传递回一个在同一个对象上调用的方法,这是毫无意义的
Board ticTacToeBoard = new Board();
ticTacToeBoard.DisplayBoard();
将所有初始化逻辑放入构造函数中,并使DisplayBoard
方法使用对象本身中的变量
我也会尝试将
maxRow
和maxColumn
设置为常量,或者将它们设置为构造函数中的参数。这里有一些问题:
- 在构造之后,通常不需要调用单独的方法来初始化对象
- 您试图从声明为返回
的方法返回string
。这是行不通的string[,]
- 您试图将
的值分配给string
类型的变量。这不起作用Board
- 你把一个对象内的状态传递回一个在同一个对象上调用的方法,这是毫无意义的
Board ticTacToeBoard = new Board();
ticTacToeBoard.DisplayBoard();
将所有初始化逻辑放入构造函数中,并使DisplayBoard
方法使用对象本身中的变量
我也会尝试将
maxRow
和maxColumn
设置为常量,或者将它们设置为构造函数中的参数。InitBoard应该返回字符串[,]而不是字符串,在main方法中,您期望的是Board实例而不是字符串[,]由InitBoard返回。请显示电路板类代码。InitBoard应返回字符串[,]而不是字符串,并且在main方法中,您期望的是电路板实例而不是字符串[,]由InitBoard返回。请显示板类代码谢谢Jon,它帮助我解决了所有问题,我现在可以继续制作此游戏,干杯!谢谢Jon,它帮助我解决了所有问题,我现在可以继续制作此游戏,干杯!