我是C#的新手。我正在尝试遵循以下程序,但最终会引发错误:我知道我犯了一个愚蠢的错误。任何帮助将非常感激:

静态void Main(string [] args)
        {

        IntPtr hCannedMessages = CannedMessagesInit();

        using (StreamReader sr = new StreamReader(CANNED_MESSAGE_FILE))
        {
            String line, sub;
            all_integer_IDs[] myobjarray;// = new all_integer_IDs[10];
            for (int c = 0; c < 10; c++)
            {
                myobjarray[c] = new all_integer_IDs();

            }
                line = sr.ReadLine();
                Console.WriteLine(line);

                if (line.Length > 15)
                {
                     sub = line.Remove(line.IndexOf(' ', 2));
                     Console.WriteLine("{0} \n",sub);

    myobjarray[0].setvalues((int)sub[2], (int)sub[3], (int)sub[4], (int)sub[5]);


Console.WriteLine(“ {0},{1},{2},{3}”,myobjarray [0] .m_messageID,myobjarray [0] .m_messagetype,myobjarray [0] .m_classID,myobjarray [0] .m_categoryID) ;
                    }

               Console.Read();
            sr.Close();
        }

    }
}


}

该类位于同一项目的Class1.cs文件中,如下所示:

公共类all_integer_IDs
    {

    public all_integer_IDs()
    {

        setvalues(0, 0, 0, 0);

    }

    ~all_integer_IDs()
    {
    }

    public void setvalues (int messageID, int messagetype, int classID, int categoryID)
    {
        this.m_messageID = messageID;
        this.m_messagetype = messagetype;
        this.m_classID = classID;
        this.m_categoryID = categoryID;
    }

     public int m_messageID;
     public int m_messagetype;
     public int m_classID;
     public int m_categoryID;

}


错误如下:
在第55行使用未分配的局部变量“ myobjarray”,该变量在下面复制并粘贴:
myobjarray [c] =新的all_integer_IDs();

谢谢,维伦

最佳答案

您尚未为myObjarray分配空间。您需要分配它

使用:

all_integer_IDs[] myobjarray = new all_integer_IDs[10];
for (int c = 0; c < 10; c++)
{
    myobjarray[c] = new all_integer_IDs();
}


在第55行。

并请使用PascalCase作为类名(在您的情况下为AllIntegerID)。其他开发人员将为此感谢您

-编辑,我不好。更正了调用方式。请尝试以下

10-06 09:55