2011年12月12日 星期一

Delphi 泛型轉字串

最近在用泛型寫一些東西,痴心妄想需要以下功能

TTest
<T>.ToString; //不能編譯哦!
begin
Result := f.ToString;
end;

看了半天沒有很好的解決方案
唯一的方式只有這樣
TToString<T> = reference to function(const AValue: T): string;

procedure TForm2.Button1Click(Sender: TObject);
var
gen
: TGenContainer<Integer>;
begin
gen
:= TGenContainer<Integer>.Create(
function(const AValue: Integer): string
begin
Result := IntToStr(AValue);
end);
end;

也就是說必需在傳入一個函式。
這樣有點麻煩就是