[转]C#里 泛型Where和 new()的使用
在C#中,泛型的使用非常广泛,为了泛型调用安全,经常需要对所使用的类型进行约束。
在对泛型的约束中,最常使用的关键字有where 和 new。
其中where关键字是约束所使用的泛型,该泛型必须是where后面的类,或者继承自该类。
new()说明所使用的泛型,必须具有无参构造函数,这是为了能够正确的初始化对象
where和new()的表达和使用方式如下:
//////////////////////////////
public Class A
{
publc ClassA()
{
Console.WriteLine("A具有无参构造函数")
}
}
//////////////////////////////
public Class B : ClassA
{
public ClassB() : base()
{
Console.WriteLine("B也有无参构造函数")
}
}
//////////////////////////////
public ClassC
{
public void Func<T>( ) where T : ClassA , new()
{
Console.WriteLine("使用了Func方法")
}
}
//////////////////////////////
public ClassD
{
ClassC classC = new ClassC();
classC.Func<ClassB>();
}
---------------------
作者:PresleyGo
来源:CSDN
原文:https://blog.csdn.net/presleygo/article/details/79480026
版权声明:本文为博主原创文章,转载请附上博文链接!