C# TypeOf 및 GetType의 차이점

10794 단어 typeof
동일점: 둘 다 System을 반환합니다.Type
차이점 TypeOf는 유형에 대해서만 연산할 수 있는 연산자입니다.
GetType은 Object와 통합된 방법으로 모든 Object의 변수를 호출할 수 있습니다.
 
다음은 msdn 입니다.
C# typeof 연산자(Visual Basic에서는 GetType 연산자, Visual C++에서는 typeid 연산자)는 Type 객체를 반환합니다.
유형이 고유한 타입 객체임을 나타냅니다.즉, 두 Type 객체는 동일한 유형을 나타내는 경우에만 동일한 객체를 참조합니다.이렇게 하면 참조 등식을 사용하여 Type 객체를 비교할 수 있습니다. 
이 종류는 라인이 안전하다.여러 개의 루틴은 이 유형의 실례를 동시에 읽을 수 있다.Type의 인스턴스는 다음 유형을 나타낼 수 있습니다.
  • 클래스
  • 값 유형
  • 수조
  • Interfaces
  • 포인터
  • 열거
  • 구조 범형 유형과 범형 유형 정의
  • 구조 범형 유형, 범형 유형 정의와 범형 방법 정의의 유형 실삼과 유형 형삼
  • 다음과 같은 방법으로 유형과 연관된 Type 객체에 대한 참조를 얻을 수 있습니다.
  • Object ..::. GetType 메서드는 인스턴스 유형을 나타내는 Type 객체를 반환합니다.
  • 정적 GetType 메서드는 완전히 한정된 이름으로 지정된 유형을 나타내는 Type 객체를 반환합니다.
  • Module ..::. GetTypes ,Module ..::. GetType Module ..::. FindTypes 방법은 Type 대상을 되돌려줍니다. 이 대상들은 어떤 모듈에 정의된 유형을 나타냅니다.첫 번째 방법은 모듈에 정의된 모든 공공 유형과 개인 유형의 Type 대상의 그룹을 얻는 데 사용할 수 있습니다.Assembly ..::. GetModule 또는 Assembly ..::. GetModules 방법으로 또는 Type ..::. Module 속성을 통해 모듈의 실례를 얻을 수 있다.)
  • FindInterfaces 방법은 어떤 종류가 지원하는 인터페이스 종류의 선별 목록을 되돌려줍니다.
  • GetElementType 메서드는 요소를 나타내는 Type 객체를 반환합니다.
  • GetInterfacesGetInterface 방법은 어떤 유형이 지원하는 인터페이스 유형을 나타내는 Type 대상을 되돌려줍니다.
  • GetTypeArray 메서드는 객체 그룹에 지정된 유형의 Type 객체 배열을 반환합니다.이러한 객체는 Object 유형의 배열로 지정됩니다.
  • GetTypeFromProgIDGetTypeFromCLSID 방법은 COM 상호 운용을 위한 것입니다.이러한 메서드는 ProgID 또는 CLSID가 지정한 유형을 나타내는 Type 객체를 반환합니다.
  • GetTypeFromHandle 방법은 상호작용을 위한 것이다.이 메서드는 클래스 핸들이 지정한 유형의 Type 객체를 반환합니다.
  • C# typeof 연산자, C++ typeid 연산자, Visual Basic GetType 연산자는 특정 유형의 Type 객체를 가져옵니다.
  • MakeGenericType 방법은 Type 대상을 되돌려줍니다. 이 대상은 구조 범형 유형을 나타내고 이 대상의 ContainsGenericParameters 속성이true로 되돌아오면 이 유형은 개방 구조 유형이고 그렇지 않으면 폐쇄 구조 유형입니다.폐쇄된 범주 유형만 실례화할 수 있습니다.
  • MakeArrayType, MakePointerTypeMakeByRefType 메서드는 지정된 유형의 배열, 지정된 유형을 가리키는 포인터 및 참조 매개변수의 유형(C#에서는 ref, Visual Basic에서는 ByRef)을 나타내는 Type 객체를 반환합니다.
    using System;
    using System.Reflection;
    
    class Example
    {
        static void Main()
        {
            Type t = typeof(String);
    
            MethodInfo substr = t.GetMethod("Substring", 
                new Type[] { typeof(int), typeof(int) });
    
            Object result = 
                substr.Invoke("Hello, World!", new Object[] { 7, 5 });
            Console.WriteLine("{0} returned \"{1}\".", substr, result);
        }
    }
    
    /* This code example produces the following output:
    
    System.String Substring(Int32, Int32) returned "World".
     */
    

      

  • 좋은 웹페이지 즐겨찾기