System.RuntimeType
추상 기본 클래스에서 파생되는 구체적인 클래스입니다 System.Type
. System.RuntimeType
공개되지 않기 때문에 일반적으로 System.Type
.
개체의 유형을 가져 오려고 할 때 GetType()
해당 개체를 직접 사용하는 대신 첫 번째 개체의 유형을 나타내는 다른 개체를 실수로 호출 할 때 혼란이 발생할 수 있습니다 . 그런 다음 호출 된 객체가 유형을 나타낼 때 Type.ToString()
반환 "System.RuntimeType"
됩니다.
string str = string.Empty;
Type strType = str.GetType();
Type strTypeType = strType.GetType();
strType.ToString();
strTypeType.ToString();
예를 들어, 이 블로그 게시물에서 누군가는 다음과 같이 데이터베이스의 열 유형을 가져 오려고합니다.
object val = reader.GetFieldType(index);
Type runtimeType = val.GetType();
PropertyInfo propInfo = runtimeType.GetProperty("UnderlyingSystemType");
Type type = (Type)propInfo.GetValue(val, null);
val은 이미 Type 객체이므로 val.GetType ()은 System.RuntimeTime
원래 유형 객체를 나타내는 데 사용되는 구체적인 유형이므로 유형 을 나타내는 다른 Type 객체를 반환 합니다. 그런 다음 블로그 게시물은 필요한 모든 것이 실제로 필요한 경우 원래 유형 객체의 유형을 얻기 위해 불필요한 반사 속임수를 보여줍니다.
Type type = reader.GetFieldType(index) as Type;
따라서 Type
객체가를 나타낸다고보고하는 경우 이미 가지고있는 유형을 System.RuntimeType
실수로 호출하지 않았는지 확인하십시오 GetType()
.