如何修复错误CS0165:“使用未分配的局部变量'a'”?

时间:2019-03-27 21:07:38

标签: c# forms

我想从Windows窗体中的CSV创建输出

 public struct Artikel
    {
        public String id;
        public double d;
        public double dmin;
        public double I;
        public double d2;
        public double e;
        public double I1;
        public double I2;

    }

现在我要声明路径

 private void buttonEingabe_Click(object sender, EventArgs e)
    {
        var tabelle = Tabelle.getTabel(@"C:\Users\alexa\source\repos\metallBohrrer\metallBohrrer\db.csv");
        int index = 0;
        int anzahl = tabelle.Length;
        string temp = textBoxpk.Text;
        int tempint = 0;

        for (; index < anzahl;)
        {
            if (temp == tabelle[index].id)
            {
                tempint = index;
            }

            index++;
        }

        textBoxpk.Text = tabelle[tempint].id;
        //   textBox2.Text = tabelle[tempint].d;
        //   textBox3.Text = tabelle[tempint].dmin;


    }

此后,我想对其进行声明,然后在这里看到错误“ CS0165 C#使用未分配的本地变量'a'”和“ CS0136 C#”,因为该名称在封闭局部作用域以定义局部或参数。”

public static class Tabelle
    {
        public static Artikel[] getTabel(String Datei)
        {
            List<Artikel> artikel = new List<Artikel>();
            String[] zeilen = File.ReadAllLines(Datei);
            foreach (String zeilen in zeilen)
            {
                String[] data = zeilen.Split(';');
                Artikel a;
                a.id = data[0];

                artikel.Add(a);

            }
            return artikel.ToArray();
        }
    }

我真的不知道为什么它不会建立。

1 个答案:

答案 0 :(得分:2)

您没有为Tabelle类的第10行声明的变量分配任何内容。您可能需要将Artikel设为一门课程,然后尝试以下方法:

Artikel a = new Artikel();
a.id = data[0];

编辑:如果确定要使用结构,此答案可能会有所帮助:C# Structs: Unassigned local variable?