189 8069 5689

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://cdxtjz.cn/article/jesdhs.html

联系我们

您好HELLO!
感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
  • 电话:028- 86922220 18980695689
  • 商务合作邮箱:631063699@qq.com
  • 合作QQ: 532337155
  • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

小谭建站工作室

成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

小谭观点

相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。