我正在为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,但我需要先让它工作。
答案 0 :(得分:1)
您正在创建一个长度为1的Races数组,但您仍需要在数组中创建Race对象:
raceOption[i] = new Race[1];
raceOption[i][0] = new Race();
raceOption[i][0].Name = "unknown";