Show/Hide Toolbars

XSharp

用途

声明访问非导出或虚拟实例变量的方法。

语法

 [Attributes] [Modifiers] PROPERTY<idName>

 [([<idParam> [AS | REF <idType>] [, ...])]

 [AS <idType>] [<idConvention>]
 [

        AUTO [Attributes] [Modifiers] GET | SET | INIT

             | [  [Attributes] [Modifiers] GET <Expression> ]  [ [Attributes] [Modifiers] SET <Expression>]   [ [Attributes] [Modifiers] INIT <Expression>]  

 CRLF

             | [  [Attributes] [Modifiers] GET <Body > END GET]

             | [  [Attributes] [Modifiers] GET => <Expression>]

             | [ [Attributes] [Modifiers]  SET <Body > END SET]

             | [  [Attributes] [Modifiers] SET => <Expression>]

             | [ [Attributes] [Modifiers]  INIT <Body > END INIT]

             | [  [Attributes] [Modifiers] INIT => <Expression>]

   END PROPERTY

             ]

参数

Attributes一个可选的特性列表,用于描述实体的元信息,例如在 MsTest 类库中包含测试的方法/函数上的 [TestMethod] 属性。请注意,当特性写在关键字上方的行时,特性必须在同一行或以分号结尾。

 

<idName>定义的属性的有效标识符名称。 与其他方法一样,属性也是实体。在一个类中,属性名称必须是唯一的,但也可以与应用程序中的其他实体名称相同。

 

<idParam>参数变量。 以这种方式指定的变量会自动声明为局部变量。 这些变量也称为形参(形式参数),用于接收调用实体时传递的参数。

 

AS | REF | OUT | IN <idType>指定参数变量的数据类型(称为强类型)。 AS 表示参数必须通过值传递,REF 表示参数必须通过带 @ 操作符的引用传递。OUT 是一种特殊的 REF 参数,不必在调用前赋值,必须在实体内部赋值。IN 参数作为 READONLY 引用传递。
列表中的最后一个参数也可以声明为 PARAMS <idType>[] ,这将告诉编译器函数/方法可以接收零个或多个可选参数。
使用 CLIPPER 调用约定的函数或方法将被编译为一个带有单个参数的函数,该参数被声明为 Args PARAMS USUAL[] 。
AS <idType>指定数据类型。如果省略,编译器依据编译选项来决定数据类型,或者是 USUAL,或者是由编译器自行决定。

 

<Expression>实现访问器的表达式。

 

=> <Expression>替代实体多行正文(body)的单一表达式。不能与正文(body)一起编译

 

<Body>构成此主体代码的程序语句。
<Body> 可以包含一个或多个 RETURN 语句,以将控制权返回给调用例程,并作为函数的返回值。如果未指定 RETURN 语句,当函数定义结束时,控制权将返回给调用例程,并且函数将根据指定的返回值数据类型返回一个默认值(如果返回值没有强类型,则返回 NIL)。
不能与表达式主体(Expression Body)结合使用。

描述

属性声明有 3 种类型:

不含 AUTO 子句的单行声明

带 GET / SET / INIT 访问器的单行声明

带 GET 访问块和/或 SET/INIT 访问块的多行声明。对于多行声明,END  PROPERTY 是强制性的

 

INIT 访问器声明一个属性只能在类的构造函数中更改。一个属性不能同时拥有 SET 和 INIT 访问器。

 

参见

ASSIGN, CLASS, METHOD