C#使用未分配的局部变量列表

时间:2014-03-12 18:35:59

标签: c#

     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]是错误发生的地方。

1 个答案:

答案 0 :(得分:7)

在执行任何其他操作之前,您需要实际创建一个新列表:

List<Mp3spelerinfo> myArray = new List<Mp3spelerinfo>();

接下来,您需要将项目添加到列表中。如果您尝试设置第一个项目,那么您只会收到错误消息,列表中没有多少项目:

myArray.Add(speler1);

您还应该避免调用列表myArray1。它不是一个数组,它是一个列表。差异很重要。假设您没有更有意义的名称,最好只称它为myList

我也强烈建议您将Mp3spelerinfo更改为class,而不是struct。它在概念上不代表单个值,如果你不非常非常熟悉许多非常细节的细节,处理可变结构是噩梦 C#。你有很多东西要失去,在这里使用struct并没有什么好处。当您进行更改时,您需要使用speler1显式初始化new Mp3spelerinfo();以创建它的实例。类不是以结构的方式隐式初始化的。