有没有一种简单的方法来检查对象的类型?我需要以下内容:
MyObject^ mo = gcnew MyObject();
Object^ o = mo;
if( o->GetType() == MyObject )
{
// Do somethine with the object
}
else
{
// Try something else
}
目前我正在使用嵌套的 try-catch 块寻找
System::InvalidCastException
s 感觉丑陋但有效。我打算尝试分析类似上面的代码的东西,看看它是否更快/更慢/可读,但无法计算出甚至尝试的语法。如果有人想知道,这是因为有一个队列进入了一个线程,该线程提供了要处理的数据。有时我想更改设置并通过数据队列传递它们是一种简单的方法。
最佳答案
您可以使用 MyObject::typeid
在 C++/CLI 中的方式与 typeof(MyObject)
相同在 C# 中使用。下面的代码无耻地从您的问题中复制并修改...
MyObject^ mo = gcnew MyObject();
Object^ o = mo;
if( o->GetType() == MyObject::typeid )
{
// Do somethine with the object
}
else
{
// Try something else
}
关于c++-cli - 如何在 C++/CLI 中检查对象的类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2410721/