Condividi tramite


__typeof

 

Pubblicato: aprile 2016

Nota   Questo argomento si applica solo alla versione 1 delle estensioni gestite per C++. Questa sintassi deve essere utilizzata solo per gestire il codice della versione 1. Vedere typeid (Estensioni del componente C++) per informazioni sull'utilizzo della funzionalità equivalente nella nuova sintassi.

Restituisce System::Type di un tipo specificato.

__typeof(
typename
)

dove:

  • typename
    Il nome di un tipo gestito per il quale si desidera il nome System::Type. Si noti che in un programma gestito, alcuni tipi nativi hanno effettuato aliasing a tipi in Common Language Runtime. Ad esempio, int è un alias per System::Int32.

Note

L'operatore __typeof consente di ottenere il tipo System::Type di un tipo specificato.__typeof può essere utilizzato anche per restituire un valore di System::Type in un blocco di attributi personalizzati. Per ulteriori informazioni sulla creazione di attributi personalizzati, vedere Attributo.

Esempio

Nell'esempio seguente, un attributo personalizzato (AtClass) viene applicato a una classe __gc (B). Il valore dell'attributo personalizzato viene quindi recuperato 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