__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