__typeof
Observação neste tópico se aplica somente à versão 1 de Managed Extensions for C++. Esta sintaxe só deve ser usada para manter o código da versão 1. Consulte TypeId (extensões de componentes C++) para obter informações sobre como usar a funcionalidade equivalente na nova sintaxe.
Retorna o System:: Type de um tipo especificado.
__typeof(
typename
)
onde:
- typename
O nome de um tipo gerenciado para o qual você deseja o System:: Type nome. Observe que um programa gerenciado, alguns tipos nativos tem tipo com alias no common language runtime. Por exemplo, int é um alias para System:: Int32.
Comentários
O TypeOf operador permite que você obtenha o System:: Type tipo de um tipo que você especificar.TypeOf também pode ser usado para retornar um valor de System:: Type em um bloco de atributo personalizado. Consulte atributo para obter mais informações sobre como criar seus próprios atributos.
Exemplo
No exemplo a seguir, um atributo personalizado (AtClass) é aplicado a uma classe GC (B). O valor do atributo personalizado é recuperado com 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]);
}
Saída
in Type * constructor
AtClass