다음을 통해 공유


__typeof

 

게시: 2016년 4월

참고   이 항목은 Managed Extensions for C++ 버전 1에만 적용됩니다. 이 구문은 버전 1 코드를 유지하기 위해서만 사용해야 합니다. 참조 typeid(C++ 구성 요소 확장) 동등한 기능을 사용 하 여 새 구문에서에 대 한 내용은 합니다.

지정된 형식의 System::Type을 반환합니다.

__typeof(
typename
)

다음은 각 문자에 대한 설명입니다.

  • typename
    System::Type 이름을 원하는 관리되는 형식의 이름입니다. 관리되는 프로그램에서 일부 네이티브 형식은 공용 언어 런타임의 형식으로 별칭이 지정됩니다. 예를 들어 intSystem::Int32의 별칭입니다.

설명

__typeof 연산자를 사용하면 지정한 형식의 System::Type 형식을 가져올 수 있습니다.__typeof를 사용하여 사용자 지정 특성 블록에서 System::Type의 값을 반환할 수도 있습니다. 사용자 지정 특성을 만드는 방법에 대한 자세한 내용은 특성을 참조하십시오.

예제

다음 예제에서는 사용자 지정 특성(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]);
}

출력

in Type * constructor
AtClass