Heim >Backend-Entwicklung >C++ >Warum implementieren C#-Arrays „IList' nicht direkt und wie sieht es immer noch aus?
Obwohl Arrays in C# IList
In Wirklichkeit implementieren Arrays System.Collections.IList, nicht System.Collections.Generic.IList
Die CLR generiert jedoch spezifische Array-Typen, die diese Schnittstellen möglicherweise implementieren könnten. Aber selbst für diese konkreten Array-Typen ist die Umwandlung in IEnumerable
Dies liegt an der „quacks-like-a-duck“-Eingabe, bei der der Compiler und die CLR Arrays als IList
Auch wenn die Count-Eigenschaft nicht explizit implementiert ist, stellt die CLR einen internen Getter bereit, der eine Umwandlung in das T[]-Array verwendet.
Dieses Verhalten ist zwar etwas unkonventionell, ermöglicht es aber für eine nahtlose und effiziente Implementierung von IList
Das obige ist der detaillierte Inhalt vonWarum implementieren C#-Arrays „IList' nicht direkt und wie sieht es immer noch aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!