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;