我有一個基本類型,它存儲有關問題的問題信息,以便生成練習問題集以幫助人們學習多選題測試。存儲在其中的唯一信息是答案,提示和問題編號。當我創建了一個實踐的檢驗,我需要一些屬性來存儲提交(測試可以採取部分)的答案,增加的類型,所以我創建了以下類:從父類型實例化一個孩子
public class MultipleChoiceQuestion
{
public Int32 Number { get; internal set; }
public String Prompt { get; internal set; }
public MultipleChoiceAnswer[] Choices { get; internal set; }
// constructors, etc...
}
public class PracticeTestQuestion : MultipleChoiceQuestion
{
public MultipleChoiceAnswer AnswerSelected { get; set; }
// is this right?
public PracticeTestQuestion(MultipleChoiceQuestion question)
{
...
}
}
本來我有MultipleChoiceQuestion只是PracticeTestQuestion的一員,但它在我的屬性訪問器中添加了很多額外的點,所以我將它改爲繼承上面列出的類。目前,我正在爲構造函數中的行分配所有屬性行,但感覺有點麻煩,我想知道是否有更好的方法。
C#編譯器不喜歡升遷類型的原因很好,所以我的問題是從他們的MultipleChoiceQuestion基類型實例化PracticeTestQuestions的最佳方法是什麼?
謝謝,這比我在做的事情更加優雅和可重用? – 2009-10-10 01:13:43