编程语言
首页 > 编程语言> > C#中泛型约束(where)

C#中泛型约束(where)

作者:互联网

转载自:C#中泛型约束(where)是什么?

   
 T约定:只能是Access类型或者Access的子类型
    public class BaseAccess<T> where T : Access
    {
    }
 
 
    T约定:T只能传入接口的本身和实现了此接口的类
    public class BaseAccess<T> where T : IAggregateRoot
    {
    }
 
   引用类型约束演示
    public class BaseAccess<T> where T : class
    {
    }
 
   值类型约束演示
    public class BaseAccess<T> where T : struct
    {
    }
 
    构造器约束
    public class BaseAccess<T> where T : new()
    {
         MongoContextAdapter _context;
        public BaseAccess(MongoContextAdapter context)
        {
            this._context = context;
        }
    }
 
    一个类型占位符有两个约束   必须是引用类型,必须提供构造函数
    public class BaseAccess<T> where T : class,new()
    {
 
 
    }
 
    K必须约定是一个引用类型
    V必须约定是一个值类型
    public class BaseAccess<K, V>
        where K : class,new()
        where V : struct
    {
 
 
    }
 
 
    /// 泛型参数K必须继承V         K,V必须是引用类型,必须提供构造函数
    public class BaseAccess<K, V>
        where K : V
        where K : class,new()
        where V : class,new()
    {
    }
 
 
 
    T约定:只能是Access类型或者Access的子类型
    public class BaseAccess<T> where T : Access
    {
    }
 
 
    T约定:T只能传入接口的本身和实现了此接口的类
    public class BaseAccess<T> where T : IAggregateRoot
    {
    }
 
   引用类型约束演示
    public class BaseAccess<T> where T : class
    {
    }
 
   值类型约束演示
    public class BaseAccess<T> where T : struct
    {
    }
 
    构造器约束
    public class BaseAccess<T> where T : new()
    {
         MongoContextAdapter _context;
        public BaseAccess(MongoContextAdapter context)
        {
            this._context = context;
        }
    }
 
    一个类型占位符有两个约束   必须是引用类型,必须提供构造函数
    public class BaseAccess<T> where T : class,new()
    {
 
 
    }
 
    K必须约定是一个引用类型
    V必须约定是一个值类型
    public class BaseAccess<K, V>
        where K : class,new()
        where V : struct
    {
 
 
    }
 
 
    /// 泛型参数K必须继承V         K,V必须是引用类型,必须提供构造函数
    public class BaseAccess<K, V>
        where K : V
        where K : class,new()
        where V : class,new()
    {
    }
 

 


 
 
 

标签:BaseAccess,C#,public,类型,new,where,class,中泛
来源: https://www.cnblogs.com/zhuyangxin/p/16408152.html