Поделиться через


__typeof

Примечание   Этот раздел относится только к версии 1 статьи "Управляемые расширения для C++". Приведенный здесь синтаксис должен использоваться только для обслуживания кода версия 1. Сведения об использовании аналогичных функциональных возможностей в новом синтаксисе см. в разделе typeid.

Возвращает System::Type заданного типа.

__typeof(typename)

Здесь:

  • имя-типа
    Имя управляемого типа, для которого требуется имя System::Type. Обратите внимание, что в управляемой программе некоторые собственные типы являются псевдонимами типов среды CLR. Например, int является псевдонимом для System::Int32.

Заметки

Оператор __typeof позволяет получить тип System::Type для указанного типа. Оператор __typeof также можно использовать для возврата значения System::Type в блоке настраиваемых атрибутов. Дополнительные сведения о создании собственных атрибутов см. в разделе attribute.

Пример

В следующем примере настраиваемый атрибут (AtClass) применяется к классу __gc (B). Затем значение настраиваемого атрибута извлекается с помощью оператора __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