Delphi [델파이 문법 시리즈] #5. 제네릭 - 메소드(파라미터,오버로드,타입 호환성)
2012.03.28 19:08
본 내용은 "델파이 프로그래밍 언어" 도서의 일부분을 정리한 것입니다. 보다 자세한 내용은 해당 도서를 통해 확인할 수 있습니다. "델파이 프로그래밍 언어"(342쪽): http://tech.devgear.co.kr/devgearbook/2431 그 외 데브기어 도서들은 다음 링크를 통해서 확인할 수 있습니다: www.devgear.co.kr/book |
파라미터화된 메소드
메소드를 타입 파라미터와 함께 선언할 수 있습니다. 파라미터 타입과 결과 타입에서 타입 파라미터를 사용할 수 있습니다. 파라미터화된 메소드는 오버로드된 메소드와 비슷합니다. 메소드를 인스턴스화하는 데에는 두 가지 방법이 있습니다.
명시적으로 타입 인자를 지정하는 방법
인자 타입으로부터 자동으로 추정하는 방법
예를 들면 다음과 같습니다.
타입 파라미터의 유효 범위
타입 파라미터의 유효 범위는 타입 선언과 그 모든 멤버들의 바디를 포함하지만, 자손 타입 은 포함되지 않습니다.
예를 들면 다음과 같습니다.
제네릭에서의 오버로드와 타입 호환성
오버로드
제네릭 메소드도‘overload’지시어를 사용하여 제네릭이 아닌 메소드들과 함께 오버로딩
에 포함될 수 있습니다. 제네릭 메소드와 비 제네릭 메소드 사이의 오버로드 선택 문제가 모
호하지 않으면 컴파일러는 비 제네릭 메소드를 선택합니다.
예를 들면 다음과 같습니다.
타입 호환성
두 인스턴스화되지 않은 제네릭들이 대입 호환되는 경우는 동등하거나 공통 타입에 대한 별 칭(alias)인 경우 뿐입니다.
두 인스턴스화된 제네릭들은 기반 타입이 동등 (혹은 공통 타입에 대한 별칭임) 하고 타입 인자가 동등한 경우 대입 호환됩니다.