타입 오버로드

타입 오버로드

Delphi 모드는 제네릭 타입 오버로드(generic type overload)를 허용해요. 서로 다른 템플릿 타입 목록으로 같은 제네릭 클래스를 선언하는 게 가능하다는 뜻이에요.

출처: Type overloads

본문

그러므로 다음 선언들이 가능해요.


Type
 
  TTest<T> = Class(TObject)
 
  Private
 
    FObj : T;
 
  Public
 
    Property Obj : T Read FObj Write FObj;
 
  end;
 

 
  TTest<T,S> = Class(TObject)
 
  Private
 
    FObj1 : T;
 
    FObj2 : S;
 
  Public
 
    Property Obj1 : T Read FObj1 Write FObj1;
 
    Property Obj2 : S Read FObj2 Write FObj2;
 
  end;

TTest는 타입 인자 하나(T)를 받는 버전과 두 개(T, S)를 받는 버전이 함께 선언돼 있죠. Delphi 모드의 타입 오버로드 덕분에 같은 이름의 제네릭 타입을 템플릿 타입 목록만 다르게 해서 여러 번 선언할 수 있어요.

더 알아보기

  • 제네릭 문법 요소(Syntax elements)
  • 레코드 타입 제약(Record type restrictions)
  • 네임스페이스 고려사항(Name space considerations)