将空值设置为枚举C#的数组

I.B*_*ond -3 c# arrays

我有一个枚举类“ Figure”和脚本:

public enum Figure { X, O }

private Figure[,] board = new Figure[boardSize, boardSize];
Run Code Online (Sandbox Code Playgroud)

当板上没有任何值时,我要向板上添加空值。示例: board[0,0] = null-但这是错误的。我该怎么做?

Swe*_*per 5

枚举是值类型,因此null不是有效值。

这是此问题的两种解决方案:

  1. 添加一个新的枚举值:

    public enum Figure { Empty, X, O }
    
    Run Code Online (Sandbox Code Playgroud)

您现在可以使用Figure.Empty代替null。

  1. 使用可为空的类型:

    private Figure?[,] board = new Figure[boardSize, boardSize];
    
    Run Code Online (Sandbox Code Playgroud)

一会儿?就Figure可以使用了null。