c# – 隐藏基类的属性
发布时间:2020-12-16 00:20:42 所属栏目:百科 来源:网络整理
导读:我想要完成的是有两个类,非泛型和泛型. 我需要一个非泛型类,因为我打算插入这个类的对象并将它们插入List T 这是代码 // Non-genericpublic class Response{ public object Value { get; }}// Genericpublic class ResponseT : Response{ public T Value { g
我想要完成的是有两个类,非泛型和泛型.
我需要一个非泛型类,因为我打算插入这个类的对象并将它们插入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 { ... } 解决方法
我个人只是给他们不同的名字.它将使您的生活更简单,代码更清晰:
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值.希望这个摘要对你来说不是问题. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |