以下是我到目前为止创建的代码:
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);”生成的错误命令行如下:
详细说明:
确定。我觉得相当愚蠢,但我无法弄清楚这一点!我正在学习我的第一语言,而且我在教自己(我在家里学习)。我正在练习到目前为止我所学到的(我正在使用TeenCoder“Windows编程”)关于LinkedLists和类。我正在制作的节目应该显示一个有3个答案的问题。我创建了“问题”类,没有任何错误或问题,然后我创建了一个LinkedList来保存程序要求的所有问题。再一次,没有错误。然后我创建了一个简单的测试问题以添加到列表中。这就是问题所在。它不会让我使用我的LinkedList。我意识到我可能犯了一些愚蠢的错误(就像我说的,我是计算机编程的新手),但我无法弄明白。 Thx :) ~Ethan(这是我的第一个问题)
编辑:谢谢。我在发布这个问题的第二天就发现了我的问题。我应该在我的“公共部分类Form1:Form”中创建一个方法,它将创建我的问题列表(如果这有意义的话)。感谢所有的答案,帮助和建议。
答案 0 :(得分:3)
您正在尝试执行函数中未包含的语句。你可能想要这个:
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。默认情况下,项目会自动添加到列表末尾。如果需要,可以使用Insert而不是Add,如果要在列表中的特定位置插入项目。
另外,就像一个FYI一样,我不确定你打算在哪里使用它,但你可以通过从List继承它来简化你的Questions类:
public class Questions : List<question>
{
}
这会创建一个强类型列表,因此您可以执行以下操作:
Questions questions = new Questions();
questions.Add(new Question("Q", "?", "??", "???", "??"));
答案 1 :(得分:0)
在我对这个问题过于刻板之前,请修正该行中的拼写错误(&#34; QuesITonList&#34;而不是&#34; QuesTIonList&#34;)并查看错误是否仍然存在。
编辑:更重要的是,它看起来像是语法错误。所以请耐心等待,因为我的C#并不是很好(虽然它在某些方面类似于Java):在大多数面向对象的语言中,当你定义一个类时,你实际上做的不仅仅是基本的在该定义中初始化(例如SomeIntegerValue = 4
)。任何更复杂的东西,例如调用AddLast()
方法,都必须在该类的方法中完成。
看起来您希望在初始化该对象期间完成AddLast(Q1)
。在这种情况下,你应该使用&#34;构造函数&#34;方法。您的question
课程具有该方法 - 它是您设置Question = question
的方法。为Questions
制作一个类似的方法,并将该行放在那里。
答案 2 :(得分:0)
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
}
}