网站建设资讯

NEWS

网站建设资讯

C#中泛型约束如何使用

这期内容当中小编将会给大家带来有关C#中泛型约束如何使用,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

成都创新互联专业为企业提供太平网站建设、太平做网站、太平网站设计、太平网站制作等企业网站建设、网页设计与制作、太平企业网站模板建站服务,10多年太平做网站经验,不只是建网站,更提供有价值的思路和整体网络服务。

c# where泛型约束:在定义泛型的时候,我们可以使用where限制参数的范围
1:T:类(类型参数必须是引用类型,这一点也适用于任何类,接口,委托或数组类型)
class MyClass
    where T:class //约束T必须为“引用 类型{}”
    where U:struct //约束U必须为“值 类型”
    {
        //...
    }
2:T:结构(类型参数必须是值类型,可以指定除Nullable以外的任何值类型)
class MyClass
    where T:class //约束T必须为“引用 类型{}“
    where U:struct //约束U必须为“值类型”
3:T:new()(类型参数必须具有无参数的公共构造函数。当与其它一起使用时,new()约束必须最后指定
class EmployeeList where T:Employee,IEmployee,System.IComparable,new()
{...}
4:T:<基类名>(类型参数必须是指定的基类或派生自指定的基类)
class Employee()
class GenericList where T:Employee
5:T:<接口名称>(参数必须是指定的接口或实现指定的接口。可以指定多个接口约束。约束接口也可以是泛型)
interface IMyInterface{}
class Dictionary
    where TKey:IComparable,IEnumerable
    where TVal:IMyInterface
    {...}
6:T:U(为T提供的类型参数必须是为U提供的参数或派生为U提供的参数,也就是说T和U的参数必须一样)
class List
{
    void Add(List items) where U:T //这种where U:T泛型约束方式以前还没有看到,此处的要求就是说泛型参数U必须来自T或派生自T类型
}        
a)可用于类
public class MyGenericClass where T:IComparable{}//T必须是IComparable接口类型或接口的实现类
b)可用于方法
public boo MyMethod(T t) where T:IMyInterface{}//T类型必须是IMyInterace接口类型或其实现类
c)可用于委托
public delegate T MyDelegate() where T:new()//T类型必须具有无参数的公共构造函数,当new()与其它约束一起使用时,必须要放在最后
public delegate void MyDelegate(T args) where T:IComparer,new()

上述就是小编为大家分享的C#中泛型约束如何使用了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注创新互联行业资讯频道。


网页标题:C#中泛型约束如何使用
链接分享:http://cdweb.net/article/jesdhs.html