爲什麼在Delphi(XE)中產生以下錯誤?泛型類型的調用方法?
unit UTest;
interface
type
TTest = class
public
procedure Foo<T>(A: T);
end;
implementation
{ TTest }
procedure TTest.Foo<T>(A: T);
begin
A.Add('hej');
end;
end.
我認爲泛型德爾福簡單地插入通用功能,因此,如果與沒有一個Add(string)方法一類用它只會出錯誤。
我想這樣做的原因是我有兩個類不共享基類(或接口),但一些方法簽名完全相同。我想這是有限的限制不可能的? – monoceres
這是正確的。如果這些是模板,你會沒事的。但是,對於泛型而言,你只是運氣不佳。你遇到了同樣的問題,阻止我編寫可以在標量和複數值上運行的良好數學算法。 –
這太糟糕了:(我想我將不得不恢復到RTTI和if語句(blersh) – monoceres