C#中的where泛型約束介紹
泛型約束的意思就是說:類的泛型,只能是where字句后面所寫的接口或類。
這么說好像也有點(diǎn)不大明白,舉個例子。
我有一個接口,如下:
///
/// 國籍的接口
///
public interface INationality
{
string Nationality
{
set;
get;
}
string GetNationality();
}
然后該接口有兩個實(shí)現(xiàn),如下:
///
/// 中國人
///
public class Chinese : INationality
{
private string _Nationality;
public string Nationality
{
set
{
_Nationality = value;
}
}
public string GetNationality()
{
return string.IsNullOrEmpty(_Nationality) ? "Default." : _Nationality;
}
}
///
/// 美國人
///
public class American : INationality
{
private string _Nationality;
public string Nationality
{
set { _Nationality = value; }
}
public string GetNationality()
{
return string.IsNullOrEmpty(_Nationality) ? "Default." : _Nationality;
}
}
然后創(chuàng)建一個泛型類,帶有泛型約束的類,如下:
///
///
///
///
public class PrintNationality where T : INationality, new()
{
T item = new T();
public void Print()
{
Console.WriteLine(string.Format("Nationality:{0}", item.GetNationality()));
}
}
由于有where字句的泛型約束,所以,創(chuàng)建PrintNationality的對象時,T的類型只能是繼承子INationality接口的類。
public class Program
{
static void Main(string[] args)
{
PrintNationality _c = new PrintNationality();
PrintNationality _a = new PrintNationality();
//PrintNationality _o = new PrintNationality(); 此句是錯誤的,因?yàn)榉盒皖愋捅仨毷抢^承自INationality接口的類
_c.Print();
_a.Print();
Console.ReadKey();
}
}
以上的代碼運(yùn)行結(jié)果:
相關(guān)文章
關(guān)于C#中GUI編程的標(biāo)準(zhǔn)事件問題
這篇文章主要介紹了C#中GUI編程的標(biāo)準(zhǔn)事件,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-01-01深入多線程之:內(nèi)存柵欄與volatile關(guān)鍵字的使用分析
本篇文章對內(nèi)存柵欄與volatile關(guān)鍵字的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-05-05C#遞歸應(yīng)用之實(shí)現(xiàn)JS文件的自動引用
這篇文章主要為大家詳細(xì)介紹了C#如何利用遞歸實(shí)現(xiàn)JS文件的自動引用的功能,文中的示例代碼講解詳細(xì),具有一定的參考價值,需要的可以參考一下2023-03-03C#實(shí)現(xiàn)通過ffmpeg從flv視頻文件中截圖的方法
這篇文章主要介紹了C#實(shí)現(xiàn)通過ffmpeg從flv視頻文件中截圖的方法,實(shí)例分析了C#使用ffmpeg操作flv文件的技巧,需要的朋友可以參考下2015-03-03C# 中屬性PropertyInfo的setvalue用法說明
這篇文章主要介紹了C# 中屬性PropertyInfo的setvalue用法說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2021-01-01C# BeginInvoke實(shí)現(xiàn)異步編程方式
這篇文章主要介紹了C# BeginInvoke實(shí)現(xiàn)異步編程方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-01-01