Hallo,
wie kann ich herausfinden, ob ein Control ein bestimmtes Interface xxx implementiert?
Sowas in der Art wie
if (control.Implements(xxx)) ...
oder
if (control.GetType().Implements(xxx)) ...
Danke,
Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Ja, klar.
Danke, aber manchmal sieht man den Wald vor lauter Bäumen nicht.
Christel
Es ist schlimm, eine Ausnahme zu sein, aber noch schlimmer, keine zu sein.
Salute zusammen
In diesem Zusammenhang: [Tipp] Casten aber richtig: Begriffe wie Cast / is / as
Gruss Peter
--
Microsoft MVP - Visual Developer ASP / ASP.NET, Switzerland 2007 - 2011
Hallo,
wobei auch hier der as-Operator vorzuziehen wäre:
<Interface> inst = control as <Interface>;
if (inst != null) {
inst.DoSomething();
}
Bei dem is-Operator muss die CLR zweimal prüfen, ob der angegebene Typ das Interface implementiert oder von der Klasse erbt.
Wenns mal mit Reflection sein muss (Pluginsystem beispielsweise) empfiehlt sich:
if (typeof(<Interface>).IsAssaignAbleFrom(controltype)) {
...
}
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...
Hallo kleines_eichhoernchen,
ich finde das gilt abzuwägen. Bei einer Operation wo das nicht zwingend aus Performancegründen zu beachten ist würde ich beispielsweise die IS-Abfrage wegen besserer Lesbarkeit bevorzugen...
mfg Steav
Hallo Steav,
Welche Variante besser lesbar ist, ist Ansichts- oder Geschmackssache
Es gibt 3 Arten von Menschen, die die bis 3 zählen können und die, die es nicht können...