Ali class implementira interface

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-aIdea vsebuje tisti moj interface.

Zanima me, kako ugotovim če neka controla vsebuje nek interface?

Avtor: fora, objavljeno na portalu SloDug.si (Arhiv)

Leave a comment

Please note that we won't show your email to others, or use it for sending unwanted emails. We will only use it to render your Gravatar image and to validate you as a real person.

AndrejT
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
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        }