Dar*_*Zon 3 c# generics inheritance base-class
我想要完成的是有两个类,非泛型和泛型.
我需要一个非泛型类,因为我打算插入这个类的对象并将它们插入一个 List<T>
这是代码
// Non-generic
public class Response
{
    public object Value { get; }
}
// Generic
public class Response<T> : Response
{
    public T Value { get; set; }
}
我想要一个List<Response>,当我访问这个对象时,我将Value属性作为对象.
但是当我将此对象作为泛型接收时,访问T Value属性并隐藏对象Value属性.
我希望明确,如果没有..请告诉我.
编辑:这是一个测验.因此,每个问题都有答案.例如,在MultipleChoiceQuestion中,它可以有几个答案A,B,C,D作为视图形状,或者可以是字符串或整数.
public abstract class Question
{
    public Question(string questionText)
    {
        this.QuestionText = questionText;
    }
    public string QuestionText { get; set; }
}
// Non-generic
public class Response
{
    public object Value { get; }
}
// Generic
public class Response<T> : Response
{
    public T Value { get; set; }
}
public class MathProblemQuestion : Question
{
    public Response Response { get; set; }
}
public class MultipleChoiseQuestion : Question
{
    public Response Response { get; set; }
    public IEnumerable<Response> PossibleResponses;
    ...
}
public class TrueOrFalse : Question
{
    ...
}
Jon*_*eet 10
我个人只是给他们不同的名字.它将使您的生活更简单,代码更清晰:
public abstract class Response
{
    public abstract object ObjectValue { get; }
}
public class Response<T> : Response
{
    public T Value { get; set; }
    public override object ObjectValue { get { return Value; } }
}
请注意,我已经将这个Response类抽象化了 - 否则很难看出它如何优雅地工作; 如果Response它有自己的存储,Value那么可能被设置为非T值.希望这个摘要对你来说不是问题.
| 归档时间: | 
 | 
| 查看次数: | 296 次 | 
| 最近记录: |