繁体   English   中英

为什么我的列表不起作用?

[英]Why won't my List work?

以下是我到目前为止创建的代码:

namespace Q_and_A
{
    public class question
    {        
        public string Question;
        public string Op1;
        public string Op2;
        public string Op3;
        public string Answer;

        public question(string questionString, string op1, string op2, string op3, string answer)
        {
            Question = questionString;
            Op1 = op1;
            Op2 = op2;
            Op3 = op3;
            Answer = answer;
        }
    }

    public class Questions
    {
        List<question> QuestionList = new List<question>();

        question Q1 = new question("Q", "?", "??", "???", "??");

        QuestionList.AddLast(Q1);

    }

    public partial class Form1 : Form
    {

    }
}

由“ QuestionList.AddLast(Q1);”生成的错误 命令行如下:

  1. 错误1在类,结构或接口成员声明中无效的令牌'(')C:\\ TeenCoder \\ MyProject \\ Q和A Game \\ Q和A Game \\ Form1.cs 36 29 Q和A游戏
  2. 错误2类,结构或接口成员声明中的无效令牌')'C:\\ TeenCoder \\ MyProject \\ Q和A Game \\ Q和A Game \\ Form1.cs 36 32 Q和A游戏
  3. 错误3'Q_and_A_Game.Questions.QuestionList'是一个'字段',但其用法类似于'type'C:\\ TeenCoder \\ MyProject \\ Q和A Game \\ Q和A Game \\ Form1.cs 36 9 Q和一个游戏
  4. 错误4'Q_and_A_Game.Questions.Q1'是一个'字段',但像'类型'一样使用C:\\ TeenCoder \\ MyProject \\ Q和A Game \\ Q和A Game \\ Form1.cs 36 30 Q和一个游戏

细节:

好。 我觉得自己很愚蠢,但是我无法弄清楚! 我正在学习自己的第一门语言,并且在自学(我在家上课)。 我正在练习到目前为止所学的有关LinkedLists和类的知识(我正在使用TeenCoder“ Windows编程”)。 我正在制作的程序应该显示3个问题的答案。 我创建了没有任何错误或问题的“问题”类,然后创建了一个LinkedList来容纳程序会问的所有问题。 再一次,没有错误。 然后,我创建了一个简单的测试问题以添加到列表中。 那就是问题所在。 它不会让我使用我的LinkedList。 我意识到我可能犯了一些愚蠢的简单错误(就像我说的那样,我是计算机编程的新手),但是我无法弄清楚。 谢谢:)〜伊桑(这是我的第一个问题)

编辑:谢谢。 发布此问题的第二天,我就解决了问题。 我应该在我的“公共局部类Form1:Form”中创建一个方法,该方法将创建我的问题列表(如果有意义)。 感谢您提供的所有答案,帮助和建议。

您正在尝试执行函数中未包含的语句。 您可能想要这样:

public class Questions
{
    private List<question> QuestionList = new List<question>();

    public Questions()
    {
        question Q1 = new question("Q", "?", "??", "???", "??"); // just a test question

        QuestionList.Add(Q1); // This generates 4 errors

    }

}

另外,没有AddLast。 默认情况下,项目会自动添加到列表的末尾。 如果要在列表中的特定位置插入项目,则可以使用“插入”代替“添加”。

另外,就像供参考,我不确定您打算在哪里使用它,但是您可以通过从List继承它来简化Questions类:

public class Questions : List<question>
{
}

这将创建一个强类型列表,因此您可以执行以下操作:

Questions questions = new Questions();
questions.Add(new Question("Q", "?", "??", "???", "??"));

在我对此太难思考之前,请修正该行中的错字(“ QuesITonList”而不是“ QuesTIonList”),然后查看错误是否仍然存在。

编辑:更重要的是,它看起来像是一个语法错误。 因此,请忍受我的C#不好(尽管在某些方面它与Java相似):在大多数面向对象的语言中,定义类时,您只能做基本的初始化工作( SomeIntegerValue = 4 ,例如)在该定义内。 任何更复杂的事情,例如调用AddLast()方法,都必须在该类的方法之一内完成。

看起来您希望在该对象的初始化期间完成AddLast(Q1) 在这种情况下,应使用“构造函数”方法。 您的question类具有该方法-这是您设置Question = question Questions采取类似的方法,并将该行放在那里。

public class Questions
{
    List<question> QuestionList = new List<question>();

    //Inside Class, cannot call methods, you probably want these 2 in a constructor
    public Questions()
    {
        question Q1 = new question("Q", "?", "??", "???", "??"); // just a test question

        QuestionList.Add(Q1); // This generates 4 errors
    }

}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM