Compartir a través de


__typeof

Nota   Este tema solo es aplicable a la versión 1 de Extensiones administradas para C++. Esta sintaxis solo se debe utilizar para mantener el código de la versión 1. Vea typeid para obtener información sobre el uso de la funcionalidad equivalente en la nueva sintaxis.

Devuelve el System::Type de un tipo especificado.

__typeof(typename)

donde:

  • typename
    El nombre de un tipo administrado para el que desea el nombre System::Type. Observe que, en un programa administrado, algunos tipos nativos se usan como alias para tipos de Common Language Runtime. Por ejemplo, int es un alias para System::Int32.

Comentarios

El operador __typeof permite obtener el tipo de System::Type de un tipo que especifique. __typeof también se puede utilizar para devolver un valor de System::Type en un bloque de atributos personalizados. Vea attribute para obtener más información sobre cómo crear sus propios atributos.

Ejemplo

En el ejemplo siguiente, un atributo personalizado (AtClass) se aplica a una clase __gc (B). El valor del atributo personalizado se recupera entonces con __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]);
}

Output

in Type * constructor
AtClass