在沒有泛型的時候,我們想要讓方法接受多種型別的引數,
在.net framwork 1.0時代我們會這樣定義乙個方法:
public void myaction(object myparameter)
else if(myparameter.gettype()==typeof(long))
else
}//呼叫:
int m=213;
long l=2311232131323123123213;
myaction(m);
myaction(l);
但是我們在使用上面object型別時,引數傳進來,c#缺省會對引數進行一次拆箱,在拆箱的過程中會有效能損失。
如果使用泛型
//泛型的方法定義是這樣的:
public void mygenericaction(t myparameters)
//呼叫的:
int m=213;
long l=2311232131323123123213;
mygenericaction(m);
mygenericaction(l);
//也可以這樣使用:
mygenericaction(m);
mygenericaction(l);
c 高階學習 泛型
我們為什麼要用泛型?簡而言之是為了提高 的泛用性,所以才存在的。假設我需要處理十個類,並且對十個類處理的方法都一樣,如果沒有泛型的話那麼我們需要定義十個方法來處理不同的類,你或許可以將方法中公用的部分提取出來,但是宣告十個方法是不可避免的,但是有了泛型就不一樣了,我們可以將十個方法變為乙個方法,大大...
《C 高階程式設計》之泛型 1建立泛型類
net自從2.0版本開始就支援泛型。閒話休提,馬上來看下非泛型的簡化鍊錶類,它可以包含任意型別的物件。linkedlistnode.cs中 在鍊錶中,乙個元素引用另乙個元素,所以必須建立乙個類,將其封裝在鍊錶中,並引用下乙個物件。1 public class linkedlistnode27 8pu...
c 高階之路 泛型(筆記2)
方法傳參 核心 推遲一切可也推遲的宣告 一 object 1 利用物件導向的封裝 繼承 多型 object是所有的父類 因此可以把任何變數都當做object傳入 2 子類可以運用父類的所有方法和屬性 3 但是會有一次裝箱拆箱的操作 會造成效能損失 二 泛型 1 申明 public static vo...