【发布时间】:2014-01-09 22:17:22
【问题描述】:
我正在制作一个“测验类型”程序,其中问题是从文件中读取的,存储为对象,然后存储在列表中。 我不知道如何检查它们是否存储正确,所以我也将存储代码发布。
我的问题是我似乎无法访问我存储的任何数据。 例如:
vartrack.Questions[0].MultipleChoice;
这应该返回真还是假? 但由于某种原因,我无法访问 MultipleChoice 数据。
我的代码如下: 类代码:
public class QuizQuestions
{
public bool MultipleChoice = false;
public string questiontext;
public static List<string> Answers = new List<string>();
public bool correct;
public QuizQuestions(string QuestionText)
{
questiontext = QuestionText;
}
public void AddAnswer(string answer)
{
Answers.Add(answer);
if (Answers.Count > 1)
{
MultipleChoice = true;
}
}
}
其余代码:
foreach(string currentline in vartrack.QuestionLines)
{
if (Question)
{
current = new QuizQuestions(currentline);
vartrack.Questions.Add(current);
Question = false;
}
else
{
if (currentline == "#")
{
Question = true;
}
else
{
if (current != null)
{
current.AddAnswer(currentline);
}
}
}
}
int num;
while (vartrack.Questions.Count > inputNoOfQs.Value)
{
Random random = new Random();
num = random.Next(0, vartrack.Questions.Count);
vartrack.Questions.RemoveAt(num);
}
vartrack.Questions[0].MultipleChoice;
谢谢
编辑 1: Vartrack在这里定义:
public static class vartrack
{
public static string[] QuestionSets;
public static List<string> QuestionLines = new List<string>();
public static List<object> Questions = new List<object>();
}
【问题讨论】:
-
您没有存储任何变量。你只是随机调用方法。所以,你不能访问它们,因为你没有尝试。
-
我已经删除了我的答案,因为这不是问题所在。你得到的错误到底是什么?您期望什么以及会发生什么?
-
错误是:错误 2 'object' 不包含 'MultipleChoice' 的定义,并且找不到接受类型为 'object' 的第一个参数的扩展方法 'MultipleChoice'(您是否缺少使用指令还是程序集引用?)我希望能够访问对象中的信息!编辑:我知道那里的代码没有做任何事情,它在 if 语句中,但为了便于阅读,我将其删除。
-
认为您可能需要提供更多代码清单在哪里定义了 vartrack?
-
告诉我们你是如何定义
vartrack的。