TSL语言基础 > Object TSL

属性    

  • 属性是这样的成员:它们提供灵活的机制来读取、编写或计算私有字段的值。可以像使用公共数据成员一样使用属性,但实际上它们是称作“访问器”的特殊方法。这使得可以轻松访问数据,此外还有助于提高方法的安全性和灵活性。
    语法:
    Property PropertyName read fieldOrMethod write fieldOrMethod

    关键字 Property 关键字表示开始声明了一个属性;
    PropertyName 是自定义合法的属性名 ;
    每个属性至少有一个读限定符或一个写限定符,或两者都有,它们称为访问限定符,具有以下的格式:
    read fieldOrMethod
    write fieldOrMethod

    在TSL.INI支持,一旦设定该选项为1,则任何域的property都可被访问,无论是public还是protected,private。默认情况下这种违反规则是不被允许的。
    [Compatible]
    PrivatePropertyAccess=1

    >> 属性可以具有Private,Protected或public可见性,默认为public.
    >> 如果单有读限定符,表示属性只读;如果单有写限定符,表示属性只写。
    >> 如果它是在祖先类中声明的,则它对派生类必须是可见的,则fieldOrMethod不能是私有的字段或方法;
    >> 在读限定符中,若fieldOrMethod 是一个方法,它必须是一个不带参数的函数
    >> 在写限定符中,若fieldOrMethod 是一个方法,它必须是一个带有单一参的方法,或至少有一个单一参数的重载方法。
    >> 属性可以在派生类中给重新定义.
    示例:
    program test;

    Type myDate = Class
      private
      _month ;
      Function SetMonth(value);
      Begin
        if value>0 and value<13 then
          _month:=value;
      End;

      public
      property Month read _month write setMonth;
    End;

    Begin
      D:=CreateObject("myDate");
      D.Month:=7;
      Writeln(D.Month);
    End.