为什么我的列表不起作用
本文关键字:不起作用 列表 我的 为什么 | 更新日期: 2023-09-27 18:36:46
我到目前为止创建的代码:
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 类、结构或接口成员声明 C:''TeenCoder''MyProject''Q 和 A Game''Q 和 A Game''Form1 中的标记 '(' 无效.cs 36 29 Q 和 A 游戏
- 错误 2 类、结构或接口成员声明 C:''TeenCoder''MyProject''Q 和 A Game''Q 和 A Game''Form1 中的标记")"无效.cs 36 32 Q 和 A 游戏
- 错误 3 "Q_and_A_Game.Questions.QuestionList"是一个"字段",但用作"类型"C:''TeenCoder''MyProject''Q and A Game''Q and A Game''Form1.cs 36 9 Q and A Game
- 错误 4 'Q_and_A_Game.Questions.Q1' 是一个"字段",但用作"类型" C:''TeenCoder''MyProject''Q and A Game''Q and A Game''Form1.cs 36 30 Q and A Game
详:
还行。我觉得自己很愚蠢,但我想不通!我正在学习我的第一语言,我正在自学(我在家上学)。我正在练习到目前为止我所学到的关于LinkedLists和类的知识(我正在使用TeenCoder"Windows编程")。我正在制作的程序应该显示一个带有 3 个答案的问题。我创建了没有任何错误或问题的"问题"类,然后我创建了一个 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
}
}