C#Generic Type Inheritence

时间:2016-06-28 09:49:11

标签: c# oop inheritance system.reflection

是否可以创建通用类型a = [1,2,3,4,5,8,9,10,11,200,201,202] np.split(a, array(np.add(np.where(diff(a)>1),1)).tolist()[0]) 将成为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;}
}

2 个答案:

答案 0 :(得分:1)

你是说这个意思吗?

public class Generic<T> : T
{

}

答案 1 :(得分:0)

可以在T上使用约束,从而强制T为类型baseclass,如下所示:

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
}