雖然 C# 中的陣列似乎實作了 IList
實際上,陣列實作 System.Collections.IList,而不是 System.Collections.Generic.IList
但是,CLR 會產生可能實作這些介面的特定陣列類型。但即使對於這些特定的陣列類型,轉換為 IEnumerable
這是由於「quacks-like-a-duck」類型所致,其中編譯器和 CLR 將陣列識別為實作 IList
即使 Count 屬性沒有明確實現,CLR 也提供了一個使用 T[] 數組強制轉換的內部 getter。
這種行為雖然有些不合常規,但允許無縫且高效地實現 IList
以上是為什麼 C# 陣列不直接實作'IList”,它們看起來又如何?的詳細內容。更多資訊請關注PHP中文網其他相關文章!