Freigeben über


__typeof

 

Veröffentlicht: Juli 2016

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. Finden Sie unter typeid (Komponentenerweiterungen für C++) Informationen zur Verwendung der entsprechenden Funktionalität in der neuen Syntax.

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

__typeof(
typename
)

Dabei gilt:

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

Ausgabe

in Type * constructor
AtClass