在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>();
}
网友评论