본문 바로가기
Programming/C#

c# 15 : 리플랙션

by 공부합시다홍아 2020. 6. 15.

리플렉션

리플랙션은 객체를 X-ray 사진처럼 객체의 형식 정보를 들여다보는 기능입니다. 이 기능을 이용하면 우리는 프로그램 실행 중에 객체의 형식 이름부터 프로퍼티 목록, 메소드 목록, 필드, 이벤트 목록까지 모두 열어볼 수 있습니다. 형식의 이름만 있다면 동적으로 인스턴스를 만들 수도 있고, 그 인스턴스의 메소드를 호출할 수도 있습니다. 심지어 새로운 데이터 형식을 동적으로 만들 수 있습니다. 이렇듯 런타임에 형식 정보를 다룰 수 있게하는 리플렉션은 programmer에게 한층 더 강력한 표현력을 선사합니다. 

Object.GetType() 메소드와 Type 클래스

Object는 모든 데이터 형식의 조상입니다. 이 말은 즉 모든 데이터 형식은 Object 형식이 갖고 있는 다음의 메소드를 물려받아 갖고 있다는 뜻입니다.

  • Equals()

  • GetHashCode()

  • GetType()

  • ReferenceEquals()

  • ToString()

 

위 5개 메소드 중에 GetType()은 객체의 형식 정보를 반환하는 기능을 가지고 있다. 모든 데이터 형식이 GetType() 메소드를 갖고 있기 때문에 우리는 어떤 객체에 대해서도 이 메소드를 호출해서 그 객체의 형식 정보를 얻어 낼 수 있습니다. 

GetType() 메소드는 Type 형식의 결과를 반환합니다. Type 형식은 .NET에서 사용되는 데이터 형식의 모든 정보를 담고 있습니다. 형식 이름, 소속되어 있는 어셈블리 이름, 프로퍼티 목록, 메소드 목록, 필드 목록, 이벤트 목록, 심지어는 이 형식이 상속하고 있는 인터페이스의 목록까지도 갖고 있습니다.

728x90

'Programming > C#' 카테고리의 다른 글

c# 17 : Thread(스레드)  (0) 2020.06.17
C# 16 : File(파일)  (0) 2020.06.17
C# 14 : 람다식  (0) 2020.06.15
C#_13 : WinForm으로 만드는 사용자 인터페이스1  (0) 2020.06.12
c#_12 : LINQ , JOIN  (0) 2020.06.12