2008-11-24 4 views
7

Angenommen, Sie erstellen eine generische Objektvariable und weisen sie einer bestimmten Instanz zu. Wenn Sie GetType() ausführen, erhält es den Typ Object oder den Typ der ursprünglichen Klasse?Wissen C# -Objekte den Typ der spezifischeren Klasse?

+0

Haben Sie versucht, die 10 oder so Zeilen Code, um dies zu versuchen? –

+0

Yep - Ich tat dies als "hatte eine Frage und wollte die Antwort teilen" Beitrag :) – Kalid

+0

... geschrieben zur gleichen Zeit wie Ihre Testantwort! –

Antwort

3

Ja.

Sie können auch tun:

object c = new FooBar(); 
if(c is FooBar) 
    Console.WriteLine("FOOBAR!!!"); 
2

Kurze Antwort: GetType() den Typ des jeweiligen Objekts zurück. Ich machte eine schnelle App dies zu testen:

 Foo f = new Foo(); 
     Type t = f.GetType(); 

     Object o = (object)f; 
     Type t2 = o.GetType(); 

     bool areSame = t.Equals(t2); 

Und yep, sie sind die gleichen.

+0

verwenden: wenn (o ist Foo) stattdessen. – Alan

0

Der Aufruf von GetType() ruft den ACTUAL-Typ auf. Wenn Sie den Basistyp wissen möchten, können Sie GetType() aufrufen. BaseType

Verwandte Themen