Show/Hide Toolbars

XSharp

用途

向编译器声明常量名称及其值。

语法

[Modifiers] DEFINE <idConstant> := <uValue> [AS <idType>]

参数

Modifiers一个可选的修饰符列表,用于指定主体的可见性或范围,例如:PUBLIC, STATIC, INTERNAL, EXPORT 和 UNSAFE.

 

<idConstant>常量的有效标识符名称。 常量是一个实体,因此与其他实体共享相同的名称空间。 这就意味着,常量和全局变量不能同名。

 

<uValue>分配给 <idConstant> 的常量值。 该值可以是下面列出的数据类型之一的字面量表示,也可以是只涉及运算符、字面量表示和其他 DEFINE 常量的简单表达式;但不允许使用更复杂的表达式(包括类实例)。

 

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

 

 

描述

一旦使用 DEFINE 语句声明并初始化了常量名称和值,就不能更改 <idConstant> 的值,否则会导致编译器出错。 只要在应用程序中遇到 <idConstant> 标识符名称,就会使用常量值 <uValue>。

 

您可以通过声明一个同名变量(使用 LOCAL、MEMVAR 或 FIELD)来隐藏例程中的常量名称。 变量名的搜索顺序如下:

1.        LOCALs、local parameters、MEMVARs 和 FIELDs

2.        SELF instance variables (即在类方法中不使用 <idObject>: 前缀)

3.        GLOBALs 和 DEFINEs

 

提示:您可以根据 DEFINE 常量的值执行有条件生成。 有关更多信息和示例,请参阅本章中的 #ifdef 和 #ifndef 语句。

示例

以下示例将应用程序名称分配给常量 cAppName。 该值将在程序运行开始和结束时显示:

DEFINE cAppName := "Accounts Payable"
...
FUNCTION Start()
  ? "Start of ", cAppName, " application."
  ...
  ? "End of ", cAppName, " application."

参见

#ifdef, #ifndef, GLOBAL