c#泛型类型继承
本文关键字:继承 泛型类型 | 更新日期: 2023-09-27 17:52:12
是否有可能创建一个泛型class<T>
,其泛型T
将是它的base class
?
即:
MyClass<Base1> b1 = new MyClass<Base1>();
MyClass<Base2> b2 = new MyClass<Base2>();
b1.Name="test";
b2.ID=1;
基类:
class Base1
{
protected string Name{ get; set;}
}
class Base2
{
protected int ID{ get; set;}
}
继承类:
class MyClass<T>:T //here is the question is it possible dynamic inheritence
{
}
可以在T
上使用约束,从而强制T
为基类类型,如:
public class baseclass
{
// base class code
}
// perfectly valid
public class derived1<T> : baseclass where T : baseclass
{
// derived class code
}
不可能编译下面的代码,因为T
是一个类型参数,编译器必须从用法中推断它。显然不能这样做。
public class derived2<T> : T
{
// derived class code
}