Partager via


__typeof

Remarque  Cette rubrique s'applique uniquement à la version 1 des extensions managées pour C++. Cette syntaxe doit être utilisée uniquement pour conserver le code de la version 1. Consultez typeid pour plus d'informations sur l'utilisation de la fonctionnalité équivalente dans la nouvelle syntaxe.

Retourne le System::Type d'un type spécifié.

__typeof(typename)

où :

  • typename
    Nom d'un type managé pour lequel vous souhaitez obtenir le nom System::Type. Notez que dans un programme managé, certains types natifs ont comme alias des types du Common Langage Runtime. Par exemple, int est un alias pour System::Int32.

Notes

L'opérateur __typeof vous permet d'obtenir le type System::Type d'un type que vous spécifiez. __typeof peut également servir à retourner une valeur System::Type dans un bloc d'attributs personnalisé. Pour plus d'informations sur la création de vos propres attributs, consultez attribute.

Exemple

Dans l'exemple suivant, un attribut personnalisé (AtClass) est appliqué à une classe __gc (B). La valeur de l'attribut personnalisé est ensuite extraite avec __typeof :

// keyword__typeof.cpp
// compile with: /clr:oldSyntax
#using <mscorlib.dll>
using namespace System;

public __gc class MyClass {};

[attribute(All)]
__gc class AtClass {
public:
   AtClass(Type*) {
      Console::WriteLine("in Type * constructor");
   }

   AtClass(String*) {}
   AtClass(int) {}
};

[AtClass(__typeof(MyClass))]   // Apply AtClass attribute to class B
__gc class B {};

int main() {
   Type * mytype = __typeof(B);
   Object * myobject __gc[] = mytype -> GetCustomAttributes(true);
   Console::WriteLine(myobject[0]);
}

Sortie

in Type * constructor
AtClass