我知道这个确切的问题已被提出,但是那里发布的解决方案对我来说似乎没有用.这是我正在尝试的代码:
namespace ConsoleApplication5
{
class Program
{
enum Tile { Empty, White, Black };
using Board = Tile[8,8];
Run Code Online (Sandbox Code Playgroud)
我得到的错误:
类,结构或接口成员声明中的令牌"使用"无效
似乎必须将"using"子句移到Program
类外,但我的Tile
枚举不存在.那么我该怎么做呢?
看起来您正在尝试使用名称来表示实例化Tile[,]
数组的特定方式.
为什么不直接声明一个方法呢?
Tile[,] GetBoard()
{
return new Tile[8, 8];
}
Run Code Online (Sandbox Code Playgroud)
另一个选择,虽然我认为这有点奇怪(更不用说hacky),将定义一个Board
带有隐式运算符的类型转换为Tile[,]
,如下所示:
public class Board
{
private Tile[,] tiles = new Tile[8, 8];
public static implicit operator Tile[,](Board board)
{
return board.tiles;
}
}
Run Code Online (Sandbox Code Playgroud)
这实际上允许你这样做:
Tile[,] board = new Board();
Run Code Online (Sandbox Code Playgroud)