2011-09-13 6 views
0

RTTI를 사용하는 일반 목록의 메서드 호출

이 개체가있는 경우 :

TMyObject = class; 

TMyList<T: TMyObject> = class(TList<T>) 
public 
    function Execute(aParam1, aParam2:string):boolean; 
end; 

TMyOtherObject = class(TMyObject) 

TMyOtherList = class(TMyList<TMyOtherObject>); 

TMyOtherList 개체를 함수 매개 변수로 사용하면 rtti를 통해 "execute"함수를 실행할 수 있습니까? TObject?

고마워.

+0

왜 "RTTI를 통해"? –

+0

함수가 TObject 참조를 받고 있습니다. –

+2

나는 당신이 해결하려고하는 실제 문제를 설명하는 것이 정말로 좋은 생각 일 것이라고 생각합니다. 당신의 가짜 강력 유형 솔루션을 구현하는 방법에 대한 조언을 구하는 것보다. –

답변

4

그냥 캐스트를 사용 RTTI 신경 쓰지 마십시오.

+0

데이비드 감사합니다. 그러나이 함수는 TMyOtherList에 대해 아무 것도 모른다. 이 때문에 RTTI를 사용하고 있습니다. 이 함수는 전달 된 객체의 메타 데이터에 대해 작동합니다. 동일한 기능 단위에있는 제네릭 함수를 호출 할 수 있습니다. –

+0

다음 인터페이스로 해결하십시오. –