【转】C#中泛型约束where

原文地址:https://blog.csdn.net/sjb2mln/article/details/76585579

 

 
   值类型约束演示
    public class BaseAccess<T> where T : struct
    {
    }
    
   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 : 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()
    {
    } 
 
 

 

posted @ 2018-09-26 10:03  花影疏帘  阅读(83)  评论(0)    收藏  举报