Existe-t-il un moyen simple de vérifier le type d'un objet? Je besoin de quelque chose le long des lignes suivantes:Comment vérifier le type d'un objet en C++/CLI?
MyObject^ mo = gcnew MyObject();
Object^ o = mo;
if(o->GetType() == MyObject)
{
// Do somethine with the object
}
else
{
// Try something else
}
En ce moment je suis en utilisant des blocs try-catch imbriquées qui cherchent System::InvalidCastException
s qui se sent laid, mais fonctionne. J'allais essayer de profiler quelque chose comme le code ci-dessus pour voir si c'est plus rapide/plus lent/lisible mais ne peut pas travailler sur la syntaxe pour essayer.
Au cas où quelqu'un se poserait la question, cela se produirait si une seule file d'attente entrait dans un thread qui fournissait des données sur lesquelles travailler. Parfois, je veux changer les paramètres et les transmettre via la file d'attente de données est un moyen simple de le faire.
+ 1/Accepter: C'est parfait - merci! –
cela fonctionne-t-il toujours dans VS 2010/2012? Ne voyant pas ce membre de typeid ... – bbqchickenrobot
Il fonctionne toujours dans VS2010. Je n'ai pas VS2012 donc je ne peux pas commenter la dernière version de VS. Il se peut que vous ne "voyiez pas ce membre de typeid" car la saisie semi-automatique pour C++/CLI n'était pas incluse dans VS2010. – mcdave