__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