Предположим, вы создали общую переменную Object и присвоили ее конкретному экземпляру. Если вы выполните GetType (), он получит тип Object или тип исходного класса?
Да.
Вы также можете сделать:
object c = new FooBar(); if(c is FooBar) Console.WriteLine("FOOBAR!!!");
Краткий ответ: GetType () вернет тип определенного объекта. Я сделал быстрое приложение для проверки этого:
Foo f = new Foo(); Type t = f.GetType(); Object o = (object)f; Type t2 = o.GetType(); bool areSame = t.Equals(t2);
И да, они одинаковы.
Вызов GetType () вызовет тип ACTUAL. Если вы хотите знать базовый тип, вы можете вызвать GetType (). BaseType