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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM