泛型约束

1.指定泛型参数为值类型:struct

public class MyClass<T> where T : struct
{
    //......
}

2.指定泛型参数类型为引用类型:class

public class MyClass<T> where T : class
{
    //......
}

3.指定泛型参数类型含有无参,公共的构造方法:new()

public class MyClass<T> where T : new()
{
    //......
}

4,要求泛型参数必须派生于某一基类:类名

public class BaseClass
{
    //......
}
public class MyClass<T> where T : BaseClass
{
    //......
}

5,要求泛型参数实现指定接口:接口名

与4类似,略

6  指定泛型参数 必须派生于泛型类型U(裸类型约束)

class MyList<U> where U : SeniorAnimal
{
    List<U> list = new List<U>();
    public void ShowInfo<T>() where T : U
    {
    }
}

7.同一泛型参数可以有多个约束

posted @ 2020-09-23 21:56  丝袜骑士  阅读(98)  评论(0编辑  收藏  举报