В C# с помощью VS2005, если у меня есть переменная типа Object
, к которому я назначить MyObjectType
объект литьем следующим образом:C# в VS2005: определение типа объекта действительно
MyObjectType myObj = GetMyObject();
Object obj = (Object)myObj;
Есть ли способ чтобы определить, что obj
на самом деле MyObjectType
, а не только Object
?
@John: но не объект Object, а не объект MyObjectType? –
@Craig: Нет, вам присвоен «MyObjectType», поэтому это «MyObjectType», даже если он хранится в переменной типа «object». – Timwi
@Craig: 'obj' - это переменная, а не объект вообще. * Значение * объекта 'obj' также не является объектом - это ссылка. Это может быть ссылка на экземпляр «Object» или на экземпляр «MyObjectType» или какой-либо другой тип ... или нуль. Обратите внимание, что тип самого объекта никогда не изменяется, даже если вы храните ссылку на него в переменной типа. –