我正在尝试构建一个数据结构,可以通过我正在运行的一组不同测试的跟踪结果来存储试用版。测试都包含许多路径,但我想保存和以后使用的一些信息对于不同的测试是不同的。例如,TestA的结果可能如下所示:
Trial(int) WasResponseCorrect(bool) WhichButtonWasPressed(string) SimulusLevel(double)
1 false "Up" 3.5
2 true "Left" 6.5
TestB可能有不同类型的结果字段:
Trial(int) WasResponseCorrect(bool) ColorPresented(string) LetterPresented(char) LetterGuessed(Char)
1 false green G C
2 false blue H F
我正在考虑创建一个字段名称作为键的字典(例如,WasResponseCorrect)和字段值的数组作为dic的值。我无法弄清楚如何做到这一点。也许有更好的方法来存储信息,但我想不出怎么做。我正在使用.net(VB和C#)但我认为如果您了解其他语言的示例,我可以理解并转换大多数代码。谢谢!
答案 0 :(得分:4)
如果不了解您的要求(例如,您将如何存储数据),似乎多态性就是您正在寻找的。也就是说,您有一个超类(称为Trial
)和表示特定试用类型的子类。例如:
public class Trial {
public int Id { get; set; }
public bool WasResponseCorrect { get; set; } // if this is in every type of trial
// anything else that is common to ALL trial types
}
public class TrialA : Trial {
public string WhichButtonWasPressed { get; set; }
public double SimulusLevel { get; set; }
}
public class TrialB : Trial {
public string ColorPresented { get; set; }
public char LetterPresented { get; set; }
public char LetterGuessed { get; set; }
}
这样您就可以拥有Trial
个对象的列表,但这些对象的实际运行时类型可以是TrialA
或TrialB
。