Enforce VIRTUAL/OVERRIDE(强制 VIRTUAL/OVERRIDE)
编译器选项:enforceoverride
解释:如果选中,则在覆盖父类中的方法或定义可被覆盖的新方法时,必须在方法前加上 VIRTUAL 和/或 OVERRIDE 字样。
在 VFP 中,如果一个类被子类化,那么,你可以选择在子类中重写父类中的“同名”方法。这似乎稀松平常。但是,在 .NET(C#) 中,如果想在子类中重写父类“同名”方法,默认是有限制的。通过在方法中添加 VIRTUAL 和/或 OVERRIDE 修饰符,就可以像 VFP 那样在子类中重写和父类。X# 提供这个编译器选项,应该是让使用者自行选择,是延续 VFP 中的习惯,还是遵循 .NET 的方式。
Allow Old Style assignments(允许旧式赋值)
编译器选项:allowoldstyleassignments
解释:如果选中,则允许在赋值中使用单个等号运算符 (=)。否则,必须使用冒号等号运算符(:=)。
Visual FoxPro 方言的默认值是选择,其他方言的默认值是不选择。
Modern Syntax(现代语法)
编译器选项:modernsyntax
解释:现代语法会禁用某些传统的功能。如果你摆脱不了 VFP 的习惯,那么还是不要选择这个选项。
Enable Memvar support(启用内存变量支持)
编译器选项:memvar
解释:启用对内存变量(MEMVAR、PUBLIC、PRIVATE 和 PARAMETERS)的支持。请注意,Core 和 Vulcan 方言不支持此功能。
在 Visual FoxPro 方言中,如果想让宏编译器看到局部变量,也需要使用该选项。
Enable Undeclared variables support(启用未声明变量支持)
编译器选项:undeclared
解释:启用对未声明变量的支持(这些变量被解析为 MEMVAR)。请注意,这需要同时启用 /memvar 。
你在 VFP 中使用变量习惯在使用前先定义变量吗?我也不是 100% 的做到这一点。所以,选择就对了。
Enable Implicit Namespace lookup(启用隐式命名空间查询)
编译器选项:ins
解释:从文档描述看,它似乎是一个和 Visual FoxPro 方言无关的编译器选项。
Prefix classes with default Namespace(使用默认命名空间为类加前缀)
编译器选项:ns
解释:对于名称中没有明确命名空间的已声明类型(类、接口、结构、委托),将使用默认命名空间(即在 Application 选项卡上指定的默认命名空间)。
Suppress standard header file(禁止标准头文件)
编译器选项:nostddefs
解释:对于具有 VFP 技术背景的开发人员来说,选择它真的不是一个明智的选择。除非,你真的像精通 VFP 一样精通 X# 。我相信,事实上,在国内,敢说自己精通 VFP 的都是凤毛麟角。
未完待续......