zoukankan      html  css  js  c++  java
  • Delphi的泛型学习

    delphicode的博客

    http://www.cnblogs.com/delphicode/archive/2009/12/09/1620527.html#1721139

    中写道:

     

     1 function IIF<T>(Condition: Boolean; TrueValue: T;  FalseValue: T): T;
     2 
     3 begin  
     4 
     5   if Condition then    
     6 
     7     result := TrueValue  
     8 
     9   else    
    10 
    11     result := FalseValue;
    12 
    13 end;
    14 

     

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

     

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

    代码
     1 type
     2 
     3 //Delphi IIF
     4   //注:Delphi 2009\2010 支持泛型,其它版本不支持。
     5   DelphiIIF=class
     6   public
     7     class function IIF<T>(Condition: Boolean; TrueValue: T;  FalseValue: T): T;
     8   end;
     9 
    10 
    11 
    12 implementation
    13 
    14 
    15 
    16 class function DelphiIIF.IIF<T>(Condition: Boolean; TrueValue: T;  FalseValue: T): T;
    17 begin
    18   if Condition then
    19     result := TrueValue
    20   else
    21     result := FalseValue;
    22 end;
    23 
    24 

    然后就可以这样来调用了:

    ShowMessage(DelphiIIF.IIF(True,'OK','ERROR'));
    ShowMessage(IntToStr(DelphiIIF.IIF(True,
    1,2)));

    对泛型研究不多,还请delphicode指正  :-)

  • 相关阅读:
    辗转相除法
    并查集(详)
    LCA 最近公共祖先
    RMQ ST表 静态区间最大值
    manacher
    题解 CF33B String Problem
    Linux 下对拍程序
    CSP 考试注意事项
    题解 P4688 [Ynoi2016]掉进兔子洞
    CSP 2020 游记
  • 原文地址:https://www.cnblogs.com/GarfieldTom/p/1632103.html
Copyright © 2011-2022 走看看