Unity&C#/C#

[C#] Reflection

리네엔 2024. 10. 14. 22:43

Reflection 이란?

런타임에 어셈블리, 모듈, 형식 및 해당 맴버들에 대한 정보를 검사하고 수정할 수 있는 기능

변수 형식을 가져오는 리플렉션 예제

int i = 42;
Type type = i.GetType();
Console.WriteLine(type); // System.Int32

주요 기능 및 사용 사례

  1. 형식 정보 검사 : 객체의 형식, 이름, 어셈블리 정보를 런타임에 확인
  2. 동적 객체 생성 : 런타임에 동적으로 객체를 생성
  3. 메서드 및 속성 호출 : 동적으로 메서드를 호출하거나 속성값을 읽고 씀
  4. 특성 검사 : Attribute를 런타임에 확인하여 메타데이터 접근 가능
  5. 인터페이스나 상속관계 검사 : 객체가 특정 인터페이스를 구현했는지, 기본클레스를 상속받았는지 여부를 런타임에 검사

단점

  1. 컴파일 시에 타입 안정성을 해침
  2. 전반적으로 느림 - 어셈블리에서 정의하는 메타데이터를 살필 때 항상 문자열 검색이 수행됨
  3. 리플렉션을 이용해 맴버를 호출하면 성능에 좋지 않은 영향을 미침.

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

[C#] dotNet  (2) 2024.10.14
[C#] BitOperation  (1) 2024.10.14
[C#] Enum  (0) 2024.10.14
[C#] Abstract Class  (0) 2024.10.14
[C#] Orderby  (0) 2024.10.14