有没有简单的方法来检查对象的类型?我需要沿着以下的说法:如何在C++/CLI中检查对象的类型?
MyObject^ mo = gcnew MyObject();
Object^ o = mo;
if(o->GetType() == MyObject)
{
// Do somethine with the object
}
else
{
// Try something else
}
目前我使用的是寻找System::InvalidCastException
S的感觉丑,但工程嵌套的try-catch块。我正在尝试和分析上面的代码,看它是否更快/更慢/可读,但不能解决甚至尝试的语法。
如果有人想知道,这是因为有一个队列进入一个提供数据的线程。偶尔我想更改设置并通过数据队列传递它们是一种简单的方法。
+ 1 /接受:这是完美的 - 谢谢! – 2010-03-11 12:49:24
这在VS 2010/2012中仍然有效吗?没有看到那个typeid成员... – bbqchickenrobot 2012-09-11 21:02:48
它仍然在VS2010中工作。我没有VS2012所以不能评论最新的VS版本。这可能是因为你没有“看到那个typeid成员”,因为C++/CLI的自动完成不包含在VS2010中。 – mcdave 2012-09-12 15:00:41