2009-07-15 8 views
23

Je travaille actuellement sur un projet dont une partie utilise Managed C++. Dans le code C++ géré, je crée un DataTable. Lors de la définition des colonnes pour la datatable, j'ai besoin de spécifier le type de la colonne. En C#, qui:Comment faire typeof (int) dans C++ managé?

typeof (int)

mais comment puis-je faire en Managed C++?

Merci!

+2

pour référence future ... si vous voulez voir des équivalents en langage managé, vous pouvez simplement écrire le code en C# et utiliser Redgate Reflector pour le dissoudre dans n'importe quelle langue CLR. –

Répondre

54

en C++/CLI, use the typeid keyword.

par exemple,

Type ^t = Int32::typeid; 

Dans l'ancienne « Managed C++ Extensions » syntaxe, vous utiliseriez __typeof(Int32), mais cette version toute la langue est fortement dépréciée et vous devez utiliser C++/CLI.

+0

Notez que le mot-clé int est juste un aliasto System.Int32 –

+0

J'ai annulé l'édition qui a été faite, parce que c'était faux. En C++/CLI (comme en C++), les objets contenus dans un type sont accessibles avec '::' au lieu de '.' (comme en C#). Les versions antérieures du compilateur C++/CLI autorisaient à tort la syntaxe C#. Visual Studio 2010 Bêta 1 semble l'avoir bloqué. –

+0

En fait 2008 SP1 ne le permet pas non plus ... pourquoi faire un tel edit à une réponse ?! –

Questions connexes