泛型 就是 寫一個方法,然后通過不同的 數(shù)據(jù)類型 共同調(diào)用醇份。
為什么要用泛型呢(原理)稼锅?
遇到底層代碼一樣,但是傳入?yún)?shù) 數(shù)據(jù)類型 不一樣的時候僚纷,最好的解決方式就是泛型了矩距。
什么又是泛型約束呢?
就是什么樣的 數(shù)據(jù)類型 才能執(zhí)行,引用類型怖竭?值類型锥债?
public static T getT<T>(T t) where T:class // class 必須滿足引用類型
{
return default(T);//返回的默認(rèn)值 NULL
}
public static T getT<T>(T t) where T:class,new() // new() 無參構(gòu)造函數(shù)
{
T ttt= new T
return default(T);//返回的默認(rèn)值 NULL
}
public static T getT<T>(T t) where T:struct // struct 必須滿足值類型
{
return default(T);//返回的默認(rèn)值
}
最實(shí)用的約束 (被某個類型約束)
public static T getT<T>(T t) where T:User // 所有User子類
{
t.Name;//可以打點(diǎn)
t.age;
return default(T);//返回的默認(rèn)值 NULL
}
泛型的好處是什么呢