C# 类的定义和继承问题 能解决的都是高手
//定义了一个A类(类名不确定,可能叫AA),不支持任何改动
public class A
{
public int Id { get; set; }
public string Name { get; set; }
}
//定义了一个接口
public interface IB
{
public int Phone { get; set; }
public string Email { get; set; }
}
//定义了一个B类,这是错误的例子
public class B<T> : T, IB where T : class
{
public int Phone { get; set; }
public string Email { get; set; }
public List<string> Images { get; set; }
}
//如何实现C类,这是错误的例子
public class C : B<A>
{
public string Detail { get; set; }
public DateTime AddTime { get; set; }
...
}
//如何实现C类,这是错误的例子
public class C<A> : A, B
{
public string Detail { get; set; }
public DateTime AddTime { get; set; }
...
}
//问题条件:A类不支持任何改动(类名不确定),B类和接口(包括命名)随意改动,C类不实现任何接口,最终实现C类如下
public class C
{
public int Id { get; set; }
public string Name { get; set; }
public int Phone { get; set; }
public string Email { get; set; }
public List<string> Images { get; set; }
public string Detail { get; set; }
public DateTime AddTime { get; set; }
...
}
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是想要Mixin的形式去组合出一个类型吧?
C#不是基于原型的语言,而且C#的类型是无法继承泛型参数的,所以想要达到属性Mixin的效果,基本是不可能的。
ref:Why can't I declare a type that derives from a generic type parameter?