」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 如何通過.NET集合中的索引訪問來實現協方差行為?

如何通過.NET集合中的索引訪問來實現協方差行為?

發佈於2025-02-10
瀏覽:941

How Can I Achieve Covariant Behavior with Indexed Access in .NET Collections?
理解協方差限制和iList限制

是編程中的原理,其中參考類型可以分配給基礎或接口的變量類型。但是,這在集合方面構成了困境,特別是當我們考慮iList界面時。

儘管有這種限制,但仍有一些方法可以在維護索引訪問的同時實現協變為行為。

1。 ReadOnLyCollections(從.NET 4.5開始)

2。自定義Wrapper

如果您需要一個帶有索引訪問的協調集合,則可以在.net的早期版本中創建一個包裝器類。包裝器類將封裝iList ,並且僅揭示get索引器和iEnumerable 接口。

以下代碼演示了一個自定義包裝器類,名為covariantlist 可提供對Ilist t>: {get {return tail [index]; }}} public ienumerator getEnumerator(){return tail.getEnumerator();} ienumerator ienumerable.getEnumerator(){return tail.getEnumerator(); } public int count {get {return tail.count; }}} } } 公共界面iIndexedEnumerable :iEnumerable { t此[int index] {get; } int count {get; } }

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3