實現泛型IEnumerable介面

2022-01-22 16:39:11 字數 446 閱讀 7882

用c#實現乙個類的ienumerable介面時有兩種方法:1)實現非泛型ienumerable介面;2)實現泛型ienumerable(t)介面。如果採用方法1,當集合元素t是值型別時,將涉及到巨多的boxing和unboxing操作。因此,理所當然地採用方法2;

例如,以下**採用方法2實現列舉從指定偏移開始所有整數

using system.collections.generic;

class ints : ienumerable

public ienumeratorgetenumerator()

system.collections.ienumerator system.collections.ienumerable.getenumerator()

這樣,非泛型方法轉而呼叫泛型方法,從而不需要再去實現非泛型的ienumerable介面了。

泛型 泛型類 泛型方法 泛型擦除

1 是什麼?一種允許我們在不確定引數型別時候使用的型別。例如我不知道a方法應該會傳string還是int,我就用個泛型先佔坑。2 為什麼要用泛型?泛型可以在編譯期自動確定具體型別,檢查型別是否匹配,可以提高 的重用率,減少冗餘編碼。3 泛型與object的區別?像上面說的我不知道方法a的引數型別,其...

泛型 (2)泛型類 泛型方法 泛型介面

一 泛型類 定義person類 package cn.itcast.p2.bean public class person implements comparable public person string name,int age public int compareto person p ov...

泛型 泛型介面

泛型介面 介面上要宣告泛型,介面的抽象方法要接這個泛型。實現類的宣告也要寫具體的泛型實參。注意 泛型實參要用引用資料型別。基本資料型別不行。如果一定要使用基本資料型別那麼得使用基本資料型別的包裝類。如果實現類中的型別不確定,也想帶泛型,並且和介面中的一致。那麼在實現類中宣告,將在此處宣告的 類的泛型...