Einen wunderschönen Abend zusammen.
Also, mir ist vorhin etwas aufgefallen, das ich leider nicht verstehe:
Die Klasse Dictionary<K, V> ist scheinbar nicht von den diversen Erweiterungsmethoden der Enumerable-Klasse betroffen. Aber warum nicht?!
Nach meinem Verständnis sollten diese Methoden doch alle Klassen erweitern, die im ersten Argument hinter dem this stehen; in diesem Fall alle Klassen, die IEnumerable<T> implementieren. Dictionary<K, V> implementiert IEnumerable<T> auch (genau wie z.B. List<T>, bei der die Erweiterungsmethoden greifen), aber trotzdem wird es nicht erweitert.
Kann mir da jemand weiter helfen, irgendwie scheine ich da was zu übersehen...
Vielen Dank und liebe Grüße, _void
Nach meinem Verständnis sollten diese Methoden doch alle Klassen erweitern, die im ersten Argument hinter dem this stehen;
welchem argument??
Dictionary<K, V> implementiert IEnumerable<T> auch (genau wie z.B. List<T>, bei der die Erweiterungsmethoden greifen), aber trotzdem wird es nicht erweitert.
die interfacemember sind explizit implementiert. das bedeutet, das du die dictionary klasse explizit gegen das interface casten musst um an die methoden händisch zu kommen.
Hallo JAck30lena.
welchem argument??
Mit dem ersten Argument meinte ich
public static void F(this string str) { }
das "this string str". War vielleicht etwas unglücklich ausgedrückt.
die interfacemember sind explizit implementiert. das bedeutet, das du die dictionary klasse explizit gegen das interface casten musst um an die methoden händisch zu kommen.
Das ist klar, aber um die Methoden des Interfaces geht es mir nicht, sondern um die Erweiterungsmethoden für dieses Interface.
Aber wie auch immer, das Ganze hat sich insofern geklärt, dass das gar nicht stimmt, was ich erzählt habe. Dictionary<K, V> wird sehr wohl um die besagten Methoden erweitert, nur aus irgendeinem Grund habe ich das nicht gesehen. Vielleicht fehlte mir eine Using-Direktive oder ein Assemblyverweis oder so, keine Ahnung.
Aber trotzdem vielen Dank.
_void.