타입 오버로드
타입 오버로드
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)