日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

IEnumerator,IEnumerable,IEnumerableT

發布時間:2023/12/20 编程问答 72 豆豆
生活随笔 收集整理的這篇文章主要介紹了 IEnumerator,IEnumerable,IEnumerableT 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1?接口IEnumerator,IEnumerable區別IEnumerable是一個聲明式的接口,聲明實現該接口的類就是“可迭代的enumerable”,但并沒用說明如?何實現迭代器(iterator).其代碼實現為:public?interface?IEnumerable{IEnumerator?GetEnumerator();}而IEnumerator接口是實現式接口,它聲明實現該接口的類就可以作為一個迭代器iterator.其代碼實現為:????????public?interface?IEnumerator{object?Current?{?get;?}bool?MoveNext();void?Reset();} 所以一個collection要支持Foreach進行遍歷,就必須實現IEnumerable,并一某種方式返回迭代器對象:IEnumerator 2?IEnumerable,IEnumerable<T>區別 我們可以看一段代碼: public?interface?IEnumerable<out?T>:IEnumerable {IEnumerator<T>?GetEnumerator(); } 從上面代碼可以很清楚知道IEnumerable<T>是IEnumerable接口的泛型版本。 使用泛型,不會強行對值類型進行裝箱和拆箱,或引用類型進行向下強制類型轉換,使程序性能提高。泛型定義的變量有類型限制,所以泛型提高了程序的類型安全并且提高了代碼的重用性。 比如我們常見的IList??????IList<T>繼承自ICollection<T>,ICollection<T>繼承自IEnumerable<T>,IEnumerable<T>繼承自IEnumerable,所以List<T>實現了IEnumerable<T>接口,也就是實現了IEnumerable接口 所以可以經常看到這樣的代碼?:public?static?IEnumerable<T>?Filter<T>(IEnumerable<T>?ObjectList)???{???List<T>?ResultList?=?new?List<T>();???..............return?ResultList;????}

轉載于:https://blog.51cto.com/tangqiongqi/1424995

總結

以上是生活随笔為你收集整理的IEnumerator,IEnumerable,IEnumerableT的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。