public struct Mp3spelerinfo
{
public string ID;
public string Make;
public string Model;
public string MBSize;
public string Price;
};
//AANMAAK MP3SPELERS DMV STRUCT
public static void maakmp3speler()
{
List<Mp3spelerinfo> myArray;
Mp3spelerinfo speler1;
speler1.ID = "1";
speler1.Make = "GET technologies .inc";
speler1.Model = "HF 410";
speler1.MBSize = "4096";
speler1.Price = "129.95";
myArray[0] = speler1;
}
我该怎么做才能防止这种情况发生? 我正在做的是尝试获取一个列表,以便我可以使用.Add来简化操作。 myArray [0]是错误发生的地方。
答案 0 :(得分:7)
在执行任何其他操作之前,您需要实际创建一个新列表:
List<Mp3spelerinfo> myArray = new List<Mp3spelerinfo>();
接下来,您需要将项目添加到列表中。如果您尝试设置第一个项目,那么您只会收到错误消息,列表中没有多少项目:
myArray.Add(speler1);
您还应该避免调用列表myArray1
。它不是一个数组,它是一个列表。差异很重要。假设您没有更有意义的名称,最好只称它为myList
。
我也强烈建议您将Mp3spelerinfo
更改为class
,而不是struct
。它在概念上不代表单个值,如果你不非常非常熟悉许多非常细节的细节,处理可变结构是噩梦 C#。你有很多东西要失去,在这里使用struct
并没有什么好处。当您进行更改时,您需要使用speler1
显式初始化new Mp3spelerinfo();
以创建它的实例。类不是以结构的方式隐式初始化的。