Delphi的泛型学习

function IIF<T>(Condition: Boolean; TrueValue: T; FalseValue: T): T;

begin

if Condition then

result := TrueValue

else

result := FalseValue;

end;

注:Delphi 2009\2010 支持泛型,其它版本不支持。

真的很方便!不过好像不能直接这样定义函数,只能定义在class/record/interface中,我写了个测试,可以这样来使用

type

//Delphi IIF

//注:Delphi 2009\2010 支持泛型,其它版本不支持。

DelphiIIF=class

public

class function IIF<T>(Condition: Boolean; TrueValue: T; FalseValue: T): T;

end;

implementation

class function DelphiIIF.IIF<T>(Condition: Boolean; TrueValue: T; FalseValue: T): T;

begin

if Condition then

result := TrueValue

else

result := FalseValue;

end;