c#无法访问列表元素 - 参数超出范围

时间:2017-08-16 08:06:58

标签: c# unity3d

我第一次尝试使用列表:-) 我有一个在类中定义的列表:

std::vector

我正在尝试将文本文件中的单词添加到列表中,并在控制台中显示列表。 阅读失败:
ArgumentOutOfRangeException:参数超出范围。
参数名称:index

我正在尝试访问该列表,因为我想在此工作后添加代码以从列表中选择一个随机单词

我无法正确定义它并在添加功能后读取值。我还没有尝试过WriteString,以防你在那里看到错误

2 个答案:

答案 0 :(得分:1)

所有索引都以0而不是1开头,因此请替换

int ix = 1;

int ix = 0;

并将ix++;移到while - 循环的最后一行,所以在:

之后
Debug.Log (wordslist[ix]);
ix++;

答案 1 :(得分:0)

您真的希望interface DancesWithWolves { void DanceWithWolves(); } class MyClass2 : DancesWithWolves { public void DanceWithWolves() { /* ... */ } } class MyClass1 : DancesWithWolves { private readonly DancesWithWolves m_myClass2; public MyClass1(DancesWithWolves myClass2) { m_myClass2 = myClass2; } public void DanceWithWolves() { m_myClass2.DanceWithWolves(); } } class MyClass3 { public void MyClass3Method(DancesWithWolves myClass1) { myClass1.DanceWithWolves(); } } ReadString方法是静态的吗?使用静态方法意味着它们与WriteString类的实例无关,这意味着您无法使用字段Words,因为它属于wordslist类的实例。

您可以将Words的实例作为参数传递给wordslist