C# 无法隐式转换类型';字符串[,]和#x27;至';字符串';返回主C时#

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];

哟。我是游戏开发的初学者,我正在制作一个控制台TictaToe游戏,我试图将我游戏的board类的board网格传递到main,因为我想把gameboard放在它自己的类中。我制作了一个2D数组来保存电路板的字符,但返回它时遇到了问题,错误是“无法将类型'string[,]'隐式转换为'string'

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,它帮助我解决了所有问题,我现在可以继续制作此游戏,干杯!