数组初始值设定项错误

本文关键字:错误 数组 | 更新日期: 2023-09-27 18:23:42

当试图将CubeDescriptionr类型的变量添加到数组时,我得到错误:数组初始化器只能在变量或字段初始化器中使用。请尝试使用新的表达式。我看了这个论坛上的其他一些话题,但我似乎不明白我在这里做错了什么。

public class CubeDescriptor
{
    public EcubeType CubeType;
    public Texture2D Texture;
    public bool isMineable;
}
public static CubeDescriptor[] TypeTable = {
                                            {EcubeType.Air, null, false},
                                            {EcubeType.Grass, grass, false},
                                            {EcubeType.Stone, stone, true}
                                           };

数组初始值设定项错误

public class CubeDescriptor
{
    public EcubeType CubeType;
    public Texture2D Texture;
    public bool isMineable;
}
public static CubeDescriptor[] TypeTable = new {
                                               new CubeDescriptor(EcubeType.Air, null, false),
                                               new CubeDescriptor(EcubeType.Grass, grass, false),
                                               new CubeDescriptor(EcubeType.Stone, stone, true)
                                           };

编辑:

如果你没有构造函数,那么你可以做

public static CubeDescriptor[] TypeTable = new {
                                               new CubeDescriptor {CubeType = EcubeType.Air, Texture2D = null, isMineable = false},
                                               new CubeDescriptor {CubeType = EcubeType.Grass, Texture2D = grass, isMineable = false},
                                               new CubeDescriptor {CubeType = EcubeType.Stone, Texture2D = stone, isMineable = true}
                                           };

C#不支持C样式结构初始化。

要用CubeDescriptor填充数组,需要调用CubeDescriptor构造函数来创建一个新实例。

您可以使用对象初始值设定项语法设置字段:

new CubeDescriptor { CubeType = ..., Texture = ..., ... }