在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
版權聲明:本文為博主原創文章,轉載請附上博文鏈接!