Документации Инфраструктуры ECMA Common Language говорит это о КССЕ "isinst класс" инструкции:CIL инструкция "isinst <valuetype>"
Правильной CIL гарантирует, что класса является действительным TypeRef или ЬурейиМ или typespec маркера с указанием класса и , что obj всегда либо null, либо ссылка на объект.
Это означает, что тип ценности не разрешен, не так ли? Но mscorlib.dll содержит метод System.RuntimeTypeHandle :: Equals (объект OBJ) с помощью следующей инструкции:
IL_0001: isinst System.RuntimeTypeHandle
И System.RuntimeTypeHandle является ValueType. Может ли кто-нибудь поставить меня прямо здесь?
Другими словами, «isinst» действительно означает «isinst »? –
TonyK
@TonyK - я считаю, что это правильно - обратите внимание, что указанная вами часть спецификации указывает, что _obj_ должен быть нулевым или ссылкой на объект, поэтому для него не имеет смысла быть типом unboxed value. – kvb
На самом деле 'is int' переводится на' isinst int32'. В Reflector 'int32' можно щелкнуть и ссылки на' System.Int32'. То же самое с другими типами значений, такими как 'bool'. – Andreas