Знают ли объекты C # тип более определенного класса? - PullRequest
7 голосов
/ 25 ноября 2008

Предположим, вы создали общую переменную Object и присвоили ее конкретному экземпляру. Если вы выполните GetType (), он получит тип Object или тип исходного класса?

Ответы [ 3 ]

3 голосов
/ 25 ноября 2008

Да.

Вы также можете сделать:

object c = new FooBar();
if(c is FooBar)
     Console.WriteLine("FOOBAR!!!");
2 голосов
/ 25 ноября 2008

Краткий ответ: GetType () вернет тип определенного объекта. Я сделал быстрое приложение для проверки этого:

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

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

        bool areSame = t.Equals(t2);

И да, они одинаковы.

0 голосов
/ 25 ноября 2008

Вызов GetType () вызовет тип ACTUAL. Если вы хотите знать базовый тип, вы можете вызвать GetType (). BaseType

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...