C#中泛型约束(where)

2022/6/25 1:22:36

本文主要是介绍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()
    {
    }
 

 

 
 
 


这篇关于C#中泛型约束(where)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!


扫一扫关注最新编程教程