我知道这个问题 has been asked ,但那里发布的解决方案似乎对我不起作用。这是我正在尝试的代码:
namespace ConsoleApplication5
{
class Program
{
enum Tile { Empty, White, Black };
using Board = Tile[8,8];
我得到的错误:
Invalid token 'using' in class, struct, or interface member declaration
似乎“using”子句必须移到 Program
类之外,但那里不存在我的 Tile
枚举。那么我应该怎么做呢?
最佳答案
看起来您正在尝试使用名称来表示实例化 Tile[,]
数组的特定方式。
为什么不只声明一个执行此操作的方法?
Tile[,] GetBoard()
{
return new Tile[8, 8];
}
另一种选择是定义一个 Board
类型,并使用隐式运算符转换为 Tile[, ]
,如下:
public class Board
{
private Tile[,] tiles = new Tile[8, 8];
public static implicit operator Tile[,](Board board)
{
return board.tiles;
}
}
这实际上允许您这样做:
Tile[,] board = new Board();
关于c# - C# 中的 Typedef 等价物?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3598498/