文章目录

第五章 参数定义

描述参数定义的结构。

介绍

参数定义定义了一个给定类的所有对象都可用的常数值。创建类定义时(或在编译前的任何时候),可以设置其类参数的值。默认情况下,每个参数的值都是空字符串,但是可以在参数定义中指定一个非空值。在编译时,为类的所有实例建立参数值。除了极少数例外,该值不能在运行时更改。

详解

参数定义具有以下结构:

/// description 
Parameter name As parameter_type [ keyword_list ] = value ;
  • description描述(可选)旨在显示在“类参考”中。默认情况下,描述为空白。
  • name(必需)是参数的名称。这必须是有效的类成员名称,并且不能与任何其他类成员名称冲突。
  • parameter_type(可选)指定参数的用户界面类型,由Studio用于在检查器内为参数提供输入验证。

这不是类名;参见下一节。在大多数情况下,编译器会忽略这个关键字。

如果省略参数类型,也要省略单词As

  • value(可选)指定参数的值。如果省略值,也要省略等号=
  • keyword_list(可选)是以逗号分隔的关键字列表,用于进一步定义参数。

如果省略此列表,也要省略方括号。

参数的允许类型

参数类型parameter_type 选项可以是下列值之一:

  • BOOLEAN — true(1)或false(0)值。

  • CLASSNAME — 有效的类名。

  • COSCODE — ObjectScript代码。

  • COSEXPRESSION — 有效的ObjectScript表达式。

如果参数是COSEXPRESSION类型,则在运行时计算该表达式。

与形参Type关键字的大多数其他值不同,这个值影响编译器。

  • COSIDENTIFIER — 有效的ObjectScript标识符。

  • INTEGER — 整数值。

  • SQL — SQL语句

  • SQLIDENTIFIER — 有效的SQL标识符。

  • STRING —字符串值。

  • TEXT — 多行文本值。

  • CONFIGVALUE -可以在类定义之外修改的参数。
    与形参Type关键字的大多数其他值不同,这个值影响编译器。
    如果参数的类型是CONFIGVALUE,那么可以通过$SYSTEM.OBJ.UpdateConfigParam()修改参数。
    例如,下面的代码更改了参数MYPARM(在类MyApp中)的值。
    MyClass的新值为42:

set sc=$system.OBJ.UpdateConfigParam("MyApp.MyClass","MYPARM",42)

注意,$SYSTEM.OBJ.UpdateConfigParam()影响任何新进程所使用的生成的类描述符,但不影响类定义。
如果重新编译类,InterSystems IRIS将重新生成类描述符,该描述符现在将使用包含在类定义中的这个参数的值(从而覆盖通过$SYSTEM.OBJ.UpdateConfigParam()所做的更改)。

也可以省略parameter_type,在这种情况下Inspector将允许参数的任何值。

/// web服务的名称。
Parameter SERVICENAME = "SOAPDemo" ;