unboxing
От: Roman Avramov  
Дата: 18.11.02 14:25
Оценка:
проблема с unboxing в managed C++:

short src = 48;
Object* obj = __box (src); //boxing

short dst = *dynamic_cast<__box short*>(obj); //unboxing


при анбоксинге ловлю NullReferenceException. проблема именно с short — для int все пучком.
пробовал вместо short использовать System::Int16 и __int16, а вместо dynamic_cast — __try_cast и прочие — тот же эксепшн.

смотрел свою сборку в анакрине — анбоксинг выглядит весьма странно:
local1 = (short) (Int16) local0 as Int16;



временно сделал через Convert::ToInt16
Re: unboxing
От: MikaRSDN Soukhov Stock#
Дата: 18.11.02 15:01
Оценка:
Здравствуйте, Roman Avramov, Вы писали:

RA>проблема с unboxing в managed C++:


RA>
RA>short src = 48;
RA>Object* obj = __box (src); //boxing

RA>short dst = *dynamic_cast<__box short*>(obj); //unboxing
RA>


RA>при анбоксинге ловлю NullReferenceException. проблема именно с short — для int все пучком.

RA>пробовал вместо short использовать System::Int16 и __int16, а вместо dynamic_cast — __try_cast и прочие — тот же эксепшн.

В релизе работает а дебаге нет Все проходит пучком Странно Вроде это пример из MSDN и он должен работать
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.