USING 语句允许使用命名空间中的类型,而不必指定完全限定的类型名。
using namespaceName
using alias := namespaceName
using static typeName
namespaceName | 指定一个完全限定的命名空间名称,编译器在尝试解析类型名称时将使用该名称。 |
alias | 命名空间的别名。 |
typeName | 指定类型的名称,其静态成员和嵌套类型可以在不指定类型的情况下被引用。 |
NET 中的所有类型都有由命名空间名称和类型名称组成的全称。例如,“System.Windows.Forms.MessageBox” 指的是 “System.Windows.Forms” 命名空间中名为 “MessageBox”(在本例中是一个类)的类型。
在 .NET 中使用命名空间有助于防止类库之间的命名冲突。但是,键入完全限定的名称可能会很麻烦。using 语句指示编译器将指定的命名空间视为当前命名空间的一部分,以便进行类型解析。这样就可以在源代码中指定部分类型名称,而不是完全限定的名称。当然,无论是否存在任何 using 语句,您都可以使用完全限定的名称。
请注意,using 语句只导入指定名称空间中的类型名称,而不导入嵌套名称空间或父名称空间中的名称。
还要注意的是,每个源文件都有一个隐含的 using System 和 using XSharp 指令,因为 System 和 XSharp 命名空间包含几乎每个应用程序都会使用的类。明确指定 using System 或 using XSharp 是允许的,但没有必要。
USING System.Windows.Forms
FUNCTION Start() AS VOID
LOCAL dlg1 AS OpenFileDialog // 错误,不包含 using 语句
LOCAL dlg2 AS System.Windows.Forms.OpenFileDialog // 总是可以,但打字繁琐
dlg1 := OpenFileDialog{} // 错误,不包含 using 语句
dlg2 := System.Windows.Forms.OpenFileDialog{} //总是可以,但打字繁琐
...
RETURN
或者
USING SWF := System.Windows.Forms
FUNCTION Start() AS VOID
LOCAL dlg1 AS SWF.OpenFileDialog // 用别名代替全名
dlg1 := SWF.OpenFileDialog{}
...
RETURN
或者
USING STATIC System.Console
FUNCTION Start as VOID
WriteLine("Hello world") // 这会调用 System.Console.WriteLine()
ReadLine() // 这会调用 System.Console.ReadLine()
RETURN