Show/Hide Toolbars

XSharp

用途

声明并初始化静态变量和数组。

语法

STATIC [LOCAL] <idVar> [:= <uValue>] [, ...] [AS | IS <idType>] [, ...]
STATIC [LOCAL] DIM <ArraySpec> [, ...] AS | IS <idType> [, ...]
STATIC [LOCAL] <ArraySpec> [, ...] [AS ARRAY] [, ...]

 

注:为方便起见,STATIC 语句使用了多个语法。 如果每个定义之间用逗号隔开,则可以使用一条 STATIC 语句声明变量、动态数组和维数组。

 

 

<idVar>要声明的局部变量的有效标识符名称。

 

<uValue>分配给变量的初始值。
 
当使用 LOCAL 时,这可以是任何有效的表达式。
 
当使用 STATIC LOCAL 时, 该值可以是下列数据类型的字面表示,也可以是只涉及运算符、字面表示和 DEFINE 常量的简单表达式;但不允许使用更复杂的表达式(包括类实例化)。
 
注意:虽然 <uValue> 可以是字面数组,但必须是一维数组。 不允许使用多维字面数组。 例如,{1, 2, 3} 是允许的,但 {{1, 2, 3}, {4, 5, 6}, {7, 8, 9}} 则不允许。
 
注意:虽然 Chr() 函数不能在 <uValue> 中使用,但 _Chr() 操作符可以。  _Chr() 在其他方面的功能与 Chr() 完全相同。
 
如果未指定 <uValue>,变量的初始值取决于所声明的数据类型(例如,如果不使用强类型,则为 NIL;如果使用 AS INT,则为 0,等等)。

 

DIM <ArraySpec>要声明的有维数的数组。

 

<ArraySpec>要声明的动态数组。
在这两种情况下,<ArraySpec> 都是以下其中之一:

 
<idArray>[<nElements>, <nElements>, <nElements>]
<idArray>[<nElements>][<nElements>][<nElements>]

 
除了第一个维度外,所有维度都是可选的。

 
<idArray>          要声明的数组的有效标识符名称。对于动态数组,数组元素初始化为 NIL。对于定维数组,元素的初始值取决于数据类型,如上文对 `<uValue>` 的解释。
 
<nElements>    定义数组特定维度中的元素数量。维度由你指定的 <nElements> 参数的数量决定。
 
<nElements>    可以是一个字面数字表示,或者是仅涉及运算符、字面量和 DEFINE 常量的简单数字表达式;然而,不允许使用更复杂的表达式(例如函数调用)。

 

AS <idType>指定数据类型。如果省略,编译器依据编译选项来决定数据类型,或者是 USUAL,或者是由编译器自行决定。

 

 

 

IS <idType>指定一种结构体数据类型,在这种数据类型中,结构体所需的内存将在堆栈中分配(<idStructure> 是唯一允许使用 IS 关键字的 <idType> 类型)。有关数据结构体内存分配的更多信息,请参阅本指南中的 VOSTRUCT

 

AS ARRAY对于动态数组声明,指定整个数组的数据类型。

 

<arrayName>数组的变量名。数组的大小与 <nRows> 和 <nColumns> 所声明的一样。数组可以使用括号作为分隔符,也可以使用方括号。
我们建议使用方括号。

描述

STATIC 关键字是用 LOCAL 语句声明的变量的生命周期修改器,防止创建实体返回调用例程时从内存中释放变量。 这里将其单独列出,是因为 LOCAL 关键字是可选的,STATIC 可以作为变量声明语句独立存在于例程中。 有关静态变量声明的说明和注意事项,请参阅 LOCAL 语句。

参见