C#中的Typedef等效?

mpe*_*pen 3 c# syntax typedef

我知道这个确切的问题已被提出,但是那里发布的解决方案对我来说似乎没有用.这是我正在尝试的代码:

namespace ConsoleApplication5
{
    class Program
    {
        enum Tile { Empty, White, Black };
        using Board = Tile[8,8];
Run Code Online (Sandbox Code Playgroud)

我得到的错误:

类,结构或接口成员声明中的令牌"使用"无效

似乎必须将"using"子句移到Program类外,但我的Tile枚举不存在.那么我该怎么做呢?

Dan*_*Tao 7

看起来您正在尝试使用名称来表示实例化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)


lep*_*pie 6

你不能那样用using.

您只能用于具体类型,而不能用于您使用的"构造函数".