IList ...
-
Es lässt sich nicht compilieren, panel1.Controls.Insert, Insert findet er nicht. Insert ist auch nicht im Intellisense vorhanden.
-
'explizit' bedeutet, daß du auf dieses Interface casten mußt, um es benutzen zu können: Explizite Schnittstellenimplementierung
Bei deinem Beispiel also
IList list = panel1.Controls as IList; list.Insert(...);
Üblicherweise werden explizite Schnittstellen aber für Methoden definiert, welche nicht direkt vom Anwender aufrufbar sein sollen (alternativ: wo es Probleme mit doppelten Methodennamen gibt).
-
Ich habe gerade mal mit dem Reflector etwas reingeschaut. Wie es aussieht implementiert die Klasse
ArrangedElementCollection
das IList Interface privat(wenn man das so sagen kann, saemtliche Methoden des IList Interface sind privat implementiert). ControlCollection erbt dann vonArrangedElementCollection
und auch IList, da aberArrangedElementCollection
hier alles dicht macht, wirst du mit Insert nicht weit kommen weil du auf saemtliche Methoden von IList kein Zugriff ueber das ControlCollection Interface bekommst.
-
Th69 schrieb:
'explizit' bedeutet, daß du auf dieses Interface casten mußt, um es benutzen zu können: Explizite Schnittstellenimplementierung
Bei deinem Beispiel also
IList list = panel1.Controls as IList; list.Insert(...);
Üblicherweise werden explizite Schnittstellen aber für Methoden definiert, welche nicht direkt vom Anwender aufrufbar sein sollen (alternativ: wo es Probleme mit doppelten Methodennamen gibt).
Wirst du leider kein Spass dran haben, weil die Methode nicht implementiert wurde(NotSupportedException).
-
Die Frage ist natürlich auch noch, wieso überhaupt
Insert
? Wieso nichtAdd
? Die Position in dieser Collection ist ja für die Funtionalität völlig egal. Daher wird dies wahrscheinlich auch nicht unterstützt.Grüssli
-
Kann man davon ausgehen, dass die Methoden anderer Schnittstellen, implementiert sind ?
-
Du kannst davon ausgehen dass das, was auf dem tatsählichen Typen (ControlCollection) noch sichtbar ist, implementiert ist. Im Zweifel RTFM (heißt "read the fine MSDN" wie ich kürzlich aufgeschnappt habe :D).
-
Hängt wohl von den Einzelfällen ab. Muss man das ausprobieren ?
-
LordJaxom schrieb:
Im Zweifel RTFM (heißt "read the fine MSDN" wie ich kürzlich aufgeschnappt habe :D).
Wo findet man die „fine“ MSDN? Ich kenn nur die normale.
</off-topic>
-
Bashar schrieb:
Wo findet man die „fine“ MSDN? Ich kenn nur die normale.
Das war ich nicht, das war das Forum! Das ersetzt fine einfach durch fine. Ich meinte fine. Ach love!
-
*******
Die Passwörter ersetzt es auch, cool.
-
Bashar schrieb:
*******
Die Passwörter ersetzt es auch, cool.
Es ist sogar so cool, dass du dein PW in Klartext sehen kannst und _wir_ es als Sternchen sehen
Ahwsum!