对于名称中没有明确命名空间的所有类型,-ns 选项会明确指定默认命名空间。
-ns[: ]namespaceName
namespaceName | 应用程序或类库中声明的所有类型的默认命名空间名称。 |
如果未指定 -ns 选项,则未以命名空间为前缀的类型和未在 BEGIN NAMESPACE ... END NAMESPACE 结构中的类型将被编译为所谓的全局类型。
-ns 选项适用于以下类型:
•类
•接口
•结构体
•虚结构体
•委托
命名空间名称必须遵循与程序标识符相同的规则:必须以一个大写或小写字母或下划线开头,然后是零个或多个大写或小写字母、数字或下划线。所有其他字符都是非法字符,编译时会出错。
对于名称中没有明确命名空间的已声明类型,将使用默认命名空间。
要在 Visual Studio 开发环境中设置该编译器选项,请执行以下操作
1.打开项目的 "属性"页面
2.点击 Language 选项卡
3.编辑 “Prefix classes with Default Namespace(使用默认命名空间为类加前缀)”属性
4.查看属性页
5.然后,生成系统会生成一个命令行选项,将此属性与项目属性的Application 选项卡上指定的默认命名空间结合起来
在不使用 -ns 编译器选项的情况下编译以下代码时,将产生以下类型:
•Customer
•Point
•MyProject.Customer
•MyProject.Data.Customer
CLASS Customer
.
.
END CLASS
STRUCT Point
.
.
END STRUCT
ENUM CustomerType
.
END ENUM
CLASS MyProject.Customer
.
.
END CLASS
BEGIN NAMESPACE MyProject.Data
CLASS Customer
.
.
END CLASS
END NAMESPACE
如果使用 -ns:MyNameSpace 选项编译相同的代码,将产生以下类型:
•MyNameSpace.Customer
•MyNameSpace.Point
•MyProject.Customer
•MyProject.Data.Customer