1

我正在尝试构建一个数据结构,可以通过我正在运行的一组不同测试的跟踪结果来存储试验。测试都包含许多跟踪,但是我想要保存和以后使用的一些信息对于不同的测试是不同的。例如,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#),但如果您知道其他语言的示例,我想我可以理解和转换大多数代码。谢谢!

4

1 回答 1

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对象列表,但这些对象的实际运行时类型可以是TrialATrialB

于 2012-08-27T18:08:33.213 回答