C# 表达式 名称空间
在继续学习前,应花一定的时间了解一个比较重要的主题——名称空间。它们是_NET中提供应用程序代码 容器的方式,这样就可以唯一地标识代码及其内容。名称空间也用作.NETFramework中给项分类的一种方式。 大多数项都是类型定义。
默认情况下,码包含在全局名称空间中。这意味着对于包含在这段代码中的项,全局名称空间中的其 他代码只要通过名称进行引用,就可以访问它们。可使用namespace关键字为花括号中的代码块显式定义名称 空间。如果在该名称空间代码的外部使用名称空间中的名称,就必须写出该名称空间中的限定名称。
限定名称包括它所有的分层信息。这意味着,如果一个名称空间中的代码需要使用在另—个名称空间中定 义的名称,就必须包括对该名称空间的引用。限定名称在不同的名称空间级别之间使用句点字符(_),如下所示:
namespace LevelOne
{
// code in LevelOne namespace // name "NameOne*1 defined
}
IIcode in global namespace
这段代码定义了一个名称空间LevelOne,以及该名称空间中的一个名称NameOne(注意这里在应该定义名 称空间的地方添加了一个注释,而没有列出实际代码,这是为了使我们的讨论更具普遍性)。在名称空间LevelOne 中编写的代码可以直接使用NameOne来引用该名称,但全局名称空间中的代码必须使用限定名称 LevelOne.NameOne来引用这个名称。
需要注意特别重要的一点:using语句本身不能访问另一个名称空间中的名称。除非名称空间中的代码以某 种方式链接到项目上,或者代码是在该项目的源文件中定义的,或者是在链接到该项目的其他代码中定义的, 否则就不能访问其中包含的名称。另外,如果包含名称空间的代码链接到项目上,那么无论是否使用using,都 可以访问其中包含的名称。using语句便于我们访问这些名称,减少代码量,以及提高可读性。
分析ConsoleApplicationl中的代码,会看到下面这些被应用到名称空间上的代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ConsoleApplicationl
以using关键字开头的5行代码声明在这段C#代码中使用System、System.Collections.Generic> System.Linq、 System.Text和System.Threading.Tasks名称空间,它们可以在该文件的所有名称空间中访问,不必进行限定。System 名称空间是.NETFrameworic应用程序的根名称空间,包含控制台应用程序需要的所有基本功能。其他4个名称 空间常用于控制台应用程序,所以该程序包含了它们。最后,为应用程序代码本身声明一个名称空间
ConsoleApplicationl。
C# 6新増了 using static关键字。这个关键字允许把静态成员直接包含到C#程序的作用域中。例如,本章 的两个示例都使用了 System.Console静态类中的System.Console.WriteLineO方法。注意,在这些例子中,应包 括Console类和WriteLineO方法。把using static System.Console添加到名称空间列表中时,访问WriteLineO方法 就不再需要在前面加上静态类名。
之后需要System .Console静态类的所有代码示例就包括using static System.Console关键字。
点击加载更多评论>>