[英]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);”生成的错误 命令行如下:
细节:
好。 我觉得自己很愚蠢,但是我无法弄清楚! 我正在学习自己的第一门语言,并且在自学(我在家上课)。 我正在练习到目前为止所学的有关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.