锯齿状的类数组(Nexus Mod Manager的安装脚本)

时间:2012-04-08 06:55:53

标签: c# jagged-arrays

我正在为Skyrim游戏制作Nexus Mod Manager(nmm)的安装脚本。如果您不熟悉nmm,可以编写脚本以使mod安装变得简单和动态。您可以选择使用xml或c#。我正在做后者。我无法得到以下代码进行编译(通过编译我的意思是nmm会给我一个错误)。我是c#的新手,所以我可能做了一些根本错误的事情。我收到一个错误:“对象引用未设置为对象的实例”。我已经阅读了一些关于这个错误的内容,但是我不明白我做错了什么。

无论如何,这是我的一些代码:

static int maxRaceMods = 100;
static Race[][] raceOption = new Race[maxRaceMods][];
class Race
{
    public string Name { get; set; }
    public string PathMeshes { get; set; }
    public string PathTextures { get; set; }
}
static void GetRaces()
{
    for (int i = 0; i < raceOption.Length; i++)
    {
        raceOption[i] = new Race[1];
        raceOption[i][0].Name = "unknown";
        raceOption[i][0].PathMeshes = "unknown";
        raceOption[i][0].PathTextures = "unknown";
    }
}

当我尝试分配类变量时,我的问题就出现了。如果我注释掉for循环中的最后三行,代码编译得很好。显然,我计划扩展GetRaces,但我需要先让它工作。

1 个答案:

答案 0 :(得分:1)

您正在创建一个长度为1的Races数组,但您仍需要在数组中创建Race对象:

    raceOption[i] = new Race[1];
    raceOption[i][0] = new Race();
    raceOption[i][0].Name = "unknown";