• TStrings类型的对象可以用数组运算符 [] 来取其中的元素的原因


    TStrings类型的对象可以用数组运算符  []  来取其中的元素的原因;
    我们来看看TStrings是怎么定义的,下面给出源代码,其中省略了一些无关紧要的定义,

     TStrings = class(TPersistent)
      private
        FDefined: TStringsDefined;
        FDelimiter: Char;
         ......
      protected
        procedure DefineProperties(Filer: TFiler); override;
        procedure Error(const Msg: string; Data: Integer); overload;
        .........
      public
        destructor Destroy; override;
        function Add(const S: string): Integer; virtual;
        ........
        property Strings[Index: Integer]: string read Get write Put; default;
        property Text: string read GetTextStr write SetTextStr;
        property StringsAdapter: IStringsAdapter read FAdapter write SetStringsAdapter;
      end;

    我们注意到其中有这么一行代码:
    property Strings[Index: Integer]: string read Get write Put; default; 
    在这个代码的后面有default 关键字.呵呵,就是它了,由于它的存在,下面的两种操作是等效的.

    list:TStings;

    list[i]; 等效于 list.Strings[i]

    最近看了c#之后发现他也有这样的特性,所以我估计这是一种被delphi证明了的广大程序员较为喜欢的特性。
  • 相关阅读:
    Linux Commands
    sizeof操作符的使用详解
    在Vim中使用cscope
    MySQL学习笔记
    Online judge for leetcode
    使用Vim,让你工作效率更高
    Ext JS笔记
    安装J2EE开发环境
    这些都是什么啊
    QrCode二维码的实现原理
  • 原文地址:https://www.cnblogs.com/strinkbug/p/513348.html
Copyright © 2020-2023  润新知