2009-10-09 3 views
0

객관식 테스트를 위해 사람들을 도울 수있는 연습용 질문 세트를 생성하는 시스템의 질문 풀에 질문에 대한 정보를 저장하는 기본 유형이 있습니다. 그것에 저장된 유일한 정보는 응답, 프롬프트 및 질문 번호입니다. 나는 모의 테스트를 만들 때, 나는 (시험이 부분에서 취할 수 있습니다) 제출 대답을 저장하는 일부 속성 유형을 확대해야하고, 그래서 나는 다음과 같은 클래스 생성 : 부모 유형의 자녀를 인스턴스화

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) 
    { 
     ... 
    } 
} 

원래 내가 있었다를 PracticeTestQuestion의 멤버 인 MultipleChoiceQuestion이 있지만 속성 접근 자에 추가 점이 많이 추가되어 위에 나열된 클래스를 상속하도록 변경되었습니다. 현재 모든 생성자 라인에 속성 줄을 할당하고 있지만 일종의 성가신 느낌이 들며 더 좋은 방법이 있는지 궁금합니다.

C# 컴파일러는 좋은 이유로 업 사이징 형식을 좋아하지 않습니다. 그래서 제 질문은 PracticeTestQuestions를 MultipleChoiceQuestion 기본 형식에서 인스턴스화하는 가장 좋은 방법입니다.

답변

2

등 에세이 질문, 허위 사실, 더 확장이다. 필요한 경우 생성자에서 각 속성을 할당 할 수 있지만 자체 속성에 대한 지식이 있으므로 더 적절합니다.

그런 다음 PracticeTestQuestion, 당신은 다만 할 수 있습니다

public PracticeTestQuestion(MultipleChoiceQuestion question) : base(question) { } 

과는 함께 할 수.

+0

고마워요, 그게 내가 한 일보다 훨씬 더 우아하고 재사용이 가능하니? –

0

첫 번째 반응은 공장을 사용하여 질문을 만드는 것입니다. 공장에 MCQ 또는 PTQ를 요청하고 올바른 것을 만듭니다.

이것은 또한 내가 다른 MultipleChoiceQuestion 소요 MultipleChoiceQuestion에 생성자를 추가

관련 문제