Avatar billede Lasse Novice
17. januar 2007 - 18:04 Der er 4 kommentarer og
1 løsning

Implementerer en type et interface?

Jeg har en instans af System.Type. Jeg vil gerne vide om typen implementerer et interface. Det skal fungere paa samme maade som funktionen: System.Type.IsSubClassOf(System.Type).

Jeg har leget med:

Type GetInterface(string typeName)

men jeg bryder mig ikke saa meget om at passere en string. Det er federe at passere den aktuelle type der skal testes for.
Avatar billede dj_uncas Nybegynder
17. januar 2007 - 18:21 #1
Du kan bruge denne metode:

if( mitObject is IMitInterface )
{
    //do it . . .
}


Det mener jeg også virker på klasser, så man kommer udenom Type.IsSubClassOf
Avatar billede Lasse Novice
17. januar 2007 - 22:03 #2
Nej, det kan jeg ikke eftersom jeg ikke har en instans af et object men kun System.Type.
Avatar billede Slettet bruger
18. januar 2007 - 06:15 #3
Tja men så kan du jo kalde GetInterfaces som giver dig en array (Type[]) med de interfaces din type implementerer og så lave et loop som checker med is ala.

Type[] rgInterfaces = yourType.GetInterfaces();
for(int i = 0; i < rgInterfaces.Count; i++) {
  if(rgInterfaces is yourTestType) return true; // Den implementere yourTestType
}
return false;

Ovenstående er bare ikke at foretrække hvis du kan bruge GetInterface(string typeName).
Avatar billede Lasse Novice
18. januar 2007 - 16:35 #4
Ja, det virker ikke som om der er en simpel funktion til dette. Hvis i begge svarer, bliver pointene delt.
Avatar billede Lasse Novice
24. januar 2007 - 21:39 #5
naa, ingen svar... tager selv pointene for at faa dette spg lukket.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester