Partager via


__typeof

 

Publication: mars 2016

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 (Extensions de composant C++) 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