GetType을 C 번호 (), 및 클래스 대해서 typeof (), 안티 색 획득 객체 클래스의 예

이 참조 된 클래스 System.Type의 데이터 유형을 얻는 것입니다.

1 GetType을 () 객체로부터 상속 방법이므로 GetType을 () 메소드와 C에서 # 개체, x는 변수 이름 x.GetType ()

2의 typeof (x)는 X 방향, 등의 특정 클래스 명, 형명, 있어야 변수 이름 수 없다

3 System.Type.GetType (), 오버로드 된 두 방법이있다

예를 들면 변수 I :
INT16 INT16 새로운 새로운 I = ();

GetType을 (), i.GetType을 () 반환 값 유형 INT16의,하지만 대해서 typeof (I)를 사용할 수 없습니다 사용, 내가 변수 때문에,

대해서 typeof (INT32), 동일의 반환 유형 INT16은 다음과 같습니다 대해서 typeof ()를 사용하여, 그것은 단지 수 있습니다.

열거 형 변환 시리얼 포트의 패리티에 예를 들어, String-- 열거 클래스,

    objParity = (패리티) Enum.Parse ( 대해서 typeof (패리티), " 9600 " );

유형 속성 취득 클래스는, 위의 예에서 획득 또는 대해서 typeof 것을 제외하고 완전한 정보를 제공하기 위해 문자열 클래스가, 인수 클래스 이름을 입력

 

 

  // 현재의 방법은 네임 스페이스 클래스의 전체 이름을 포함 얻을   

문자열 클래스 명 = System.Reflection.MethodBase.GetCurrentMethod () DeclaringType.FullName ;. // . 네임 스페이스의 클래스를 얻을

; 유형 유형 = Type.GetType (클래스 명) // 로 클래스와 클래스 명에게 같은 이름을 가져옵니다
  객체    (유형의) OBJ = System.Activator.CreateInstance;        //이 인스턴스를 생성

엔티티 클래스 개체에 개체 개체

 

개인 의 T ConvertObject <T> ( 오브젝트 asObject를) WHERE T : 새 새 () 
{ 
    // 엔티티 객체 인스턴스 생성 
    var에 T를 = Activator.CreateInstance로 <T> ();
     IF (! asObject = 널 (null) ) 
    { 
        유형 유형 = asObject.GetType ( )
         // 대하여 반복 엔티티 객체 속성 
        foreach는 ( VAR의 정보  대해서 typeof (T) .GetProperties ()) 
        { 
            오브젝트 OBJ = 널을 ;
             // 객체를 취득이 오브젝트의 속성 값 
            VAR을브로 = type.GetProperty (info.Name)? .GetValue (asObject);
            경우 (발! = null이 ) 
            { 
                // 非泛型
                경우 (! info.PropertyType.IsGenericType) 
                    OBJ = Convert.ChangeType (발, info.PropertyType);
                다른 // 泛型null 허용 <> 
                { 
                    유형 genericTypeDefinition = info.PropertyType.GetGenericTypeDefinition ();
                    경우 (genericTypeDefinition == 대해서 typeof (null 허용 <> )) 
                    { 
                        OBJ= Convert.ChangeType (계산해 Nullable.GetUnderlyingType (info.PropertyType)); 
                    } 
                    다른 
                    { 
                        OBJ = Convert.ChangeType (계산해 info.PropertyType); 
                    } 
                } 
                info.SetValue (t, OBJ, ); 
            } 
        } 
    } 
    반환 t을; 
}

 

추천

출처www.cnblogs.com/FHL007/p/11113610.html