Show/Hide Toolbars

XSharp

 

这种方言具有“所有非 Core 方言”的特征。

 

编译器和运行时在编译 “Foxpro” 方言时具有以下“特殊”行为。

编译器

允许使用 4 个字母缩写某些旧关键字。

 

允许将"&&"作为同行注释字符,就像"//"一样。

 

允许使用 DOT('.') 操作符调用实例方法。

 

"@"操作符仅用于通过引用传递变量。

 

允许用 ENDFOR 代替 NEXT,用 FOR EACH 代替 FOREACH。

 

当"="操作符用作赋值操作符时,不会产生警告。

 

添加了几个关键字,如 THIS (作为 SELF 的别名)。

 

支持 CursorName.FieldName 语法。

 

添加了对 M.VariableName 语法的支持。

 

添加了 DIMENSION 语句语法。

 

添加 LPARAMETERS 语句。

 

添加了 TEXT ... ENDTEXT 语句。

 

添加了 \\ 和 \\\ 语句。

 

添加了 "= <Expression>" 命令

 

添加了 FoxPro 特有的 DEFINE CLASS 语法来定义类,包括使用 FUNCTION 和 PROCEDURE 来定义类内的方法,以及在这些函数和过程的名称上使用 _ACCESS 和 _ASSIGN 后缀来声明 access/assign 方法。

 

过程可以有返回值,因此与函数一样。

 

允许在源文件的第一个实体之前编写代码。这将被编译成与 PRG 文件同名的函数。

 

添加对 DoDefault() 伪函数的支持。

 

FoxPro 中的 NIL 关键字具有 "unitialized "属性,但其值为 FALSE。

运行时(Runtime)

FoxPro 方言中的默认 RDD 是 DBFVFP。

 

MemoWrit() 函数会在文件末尾添加一个额外的 ^Z 字符。MemoRead() 会在发现该字符时将其删除。

 

DBF() 函数返回文件的全名。

 

_MRelease() 函数不会清除内存变量,而是完全释放它们。

 

新的内存变量总是以 FALSE 值填充。

 

在 FoxPro 方言中,比较初始化 USUAL 值和未初始化值时会产生错误。其他方言将直接返回 FALSE。