C++ 访问命名索引属性

C++ 访问命名索引属性,c++,properties,command-line-interface,C++,Properties,Command Line Interface,我使用的是一个DLL,它提供了一个类,该类具有名为Tag的命名索引属性 下面的C#代码工作得很好 // create an instance of the class 'ticks' ... // set tag value to 46 for contract ticks.set_Tag("contract",46 ); // get tag value for contract int idx = (int)ticks.get_Tag("contract"); 我想从C++/CLI

我使用的是一个DLL,它提供了一个类,该类具有名为Tag的命名索引属性

下面的C#代码工作得很好

// create an instance of the class 'ticks'
...

// set tag value to 46 for contract
 ticks.set_Tag("contract",46 );

// get tag value for contract
 int idx = (int)ticks.get_Tag("contract");
我想从C++/CLI中使用它

set_Tag和get_Tag方法不可见

这段代码可以很好地(或至少可以编译)设置该值

ticks->Tag["contract"] = 46;
但访问该值无法编译

int idx = ticks->Tag["contract"];

error C2440: 'initializing' : cannot convert from 'System::Object ^' to 'int'

如果我强制(强制)将其转换为int,则它包含垃圾

,这可能是因为
idx
是装箱的
Int32
,而不是
int
。你可以用

int idx = safe_cast<int>(ticks->Tag["contract"]);
intidx=safe_cast(滴答声->标记[“合同]);

这可能是因为
idx
是一个装箱的
Int32
,而不是
int
。你可以用

int idx = safe_cast<int>(ticks->Tag["contract"]);
intidx=safe_cast(滴答声->标记[“合同]);

我怀念过去那些美好的日子,那时你只需要写(int),编译器自己解决所需的东西。我怀念过去那些美好的日子,那时你只需要写(int),编译器自己解决所需的东西。