__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