Sprehajam se po vseh Controlah na moji strani. Nekatere Controle na strani so moja implementacija in nekatere vsebujejo en moj interface.
Sedaj pa bi se rad sprehodil po vseh Controlah (rekurzija) in pogledal če Control-a vsebuje tisti moj interface.
Zanima me, kako ugotovim če neka controla vsebuje nek interface?
Avtor: fora, objavljeno na portalu SloDug.si (Arhiv)
AndrejT - sreda, 14. marec 2007
Če želiš poklicati metodo, ki je definirana z vmesnikom (interface), enostavno castaš v vmesnik in pokličeš metodo. Tip razreda te ne zanima... [Hkrati se lahko izogneš še dvojnemu castingu, glej spodaj:] foreach(Control fControl in pControls){ { if (fControl.HasControls) SetControls(fControl.Controls); ITControl iControl = fControl as ITControl; if (iControl != null) iControl.KlicMetode(); }
fora - sreda, 14. marec 2007
Ja sem najdu, vendar imam zej drug problem. Kako poklicat neko metodo interface, ne da bi typeCast-al, ker ne vem v kateri objekt TypeCast-at. foreach(Control fControl in pControls){ { if (fControl.HasControls) SetControls(fControl.Controls); if (fControl is ITControl) fControl.klic metode }