Freigeben über


__typeof

Hinweis   Dieses Thema gilt nur für Version 1 von Managed Extensions für C++. Diese Syntax sollte nur verwendet werden, um Code von Version 1 beizubehalten. Informationen über die Verwendung der entsprechenden Funktionen in der neuen Syntax finden Sie unter typeid (Komponentenerweiterungen für C++).

Gibt den Systemtyp (System::Type) eines angegebenen Typs zurück.

__typeof(typename)

wobei:

  • typename
    Der Name eines verwalteten Typs, für den der System::Type-Name erforderlich ist. Beachten Sie, dass bei manchen systemeigenen Typen in einem verwalteten Programm ein Aliasing zu Typen in der Common Language Runtime vorgenommen wird. Beispielsweise ist int ein Alias für System::Int32.

Hinweise

Mit dem __typeof-Operator können Sie den System::Type-Typ eines Typs abrufen, den Sie angeben. __typeof kann auch verwendet werden, um einen Wert aus System::Type in einem benutzerdefinierten Attributblock zurückzugeben. Weitere Informationen zum Erstellen Ihrer eigenen Attribute finden Sie unter Attribut.

Beispiel

Im folgenden Beispiel wird ein benutzerdefiniertes Attribut (AtClass) auf eine __gc-Klasse (B) angewendet. Der Wert des benutzerdefinierten Attributs wird dann mit __typeof abgerufen:

// 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]);
}

Output

in Type * constructor
AtClass