Załóżmy, że tworzymy ogólną zmienną Object i przypisujemy ją do konkretnej instancji. Jeśli zrobisz GetType(), otrzyma on typ Object lub typ oryginalnej klasy?Czy obiekty C# znają typ bardziej specyficznej klasy?
7
A
Odpowiedz
3
Tak.
Można również zrobić:
object c = new FooBar();
if(c is FooBar)
Console.WriteLine("FOOBAR!!!");
2
Krótka odpowiedź: GetType() zwróci typ konkretnego obiektu. Zrobiłem szybką aplikację do testowania to:
Foo f = new Foo();
Type t = f.GetType();
Object o = (object)f;
Type t2 = o.GetType();
bool areSame = t.Equals(t2);
A Tak, one są takie same.
+0
użyj: jeśli (o to Foo) zamiast tego. – Alan
0
Wywołanie funkcji GetType() spowoduje wywołanie typu RZECZYWISTEGO. Jeśli chcesz poznać typ bazowy, możesz wywołać metodę GetType(). BaseType
Czy wypróbowałeś już 10 linii kodu? –
Tak - zrobiłem to jako "miałem pytanie i chciałem podzielić się odpowiedzią" post :) – Kalid
... wysłane w tym samym czasie, co Twoja odpowiedź próbna! –