Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Type.GetInterface() 메서드 완벽 정리 – 문법과 예제

C#의 Type.GetInterface() 메서드는 현재 Type이 구현(implement)하거나 상속(inherit)하고 있는 특정 인터페이스를 조회할 때 사용됩니다. 리플렉션(Reflection) 작업 중 해당 타입이 어떤 인터페이스를 지원하는지 확인해야 할 때 유용하게 활용할 수 있습니다.

문법(Syntax)

Type.GetInterface() 메서드의 기본 문법은 다음과 같습니다.

public Type GetInterface (string name);
public abstract Type GetInterface (string name, bool ignoreCase);

매개변수 설명

name: 찾고자 하는 인터페이스의 이름을 나타내는 문자열입니다.
ignoreCase: 인터페이스 이름을 비교할 때 대소문자를 무시할지 여부를 결정합니다. true로 설정하면 대소문자 구분 없이 검색합니다.

만약 지정한 이름의 인터페이스가 존재하지 않으면 이 메서드는 null을 반환합니다.

예제 1

double 타입에서 IFormattable 인터페이스를 조회하는 예제입니다.

using System;
public class Demo {
   public static void Main(){
      Type type = typeof(double);
      Type myInterface = type.GetInterface("IFormattable");
      Console.WriteLine("Interface = "+myInterface);
   }
}

실행 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다.

Interface = System.IFormattable

예제 2

이번에는 ignoreCase 매개변수를 true로 설정하여 float 타입에서 IFormattable 인터페이스를 조회하는 예제입니다.

using System;
public class Demo {
   public static void Main(){
      Type type = typeof(float);
      Type myInterface = type.GetInterface("IFormattable",true);
      Console.WriteLine("Interface = "+myInterface);
   }
}

실행 결과

대소문자 옵션에 관계없이 동일하게 인터페이스가 정상적으로 조회되는 것을 확인할 수 있습니다.

Interface = System.IFormattable

정리

Type.GetInterface() 메서드는 문자열로 전달된 이름과 일치하는 인터페이스 정보를 Type 객체로 반환합니다. 두 번째 오버로드를 사용하면 대소문자를 구분하지 않고 검색할 수 있어, 사용자 입력값 등으로 인터페이스 이름이 들어오는 경우에도 안전하게 활용할 수 있습니다.