C 高階 泛型

2022-08-29 11:06:23 字數 680 閱讀 2018

在沒有泛型的時候,我們想要讓方法接受多種型別的引數,

在.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...