C#命名空间

来源:互联网 发布:曼彻斯特城市大学 知乎 编辑:程序博客网 时间:2024/06/16 22:21
     

命名空间是一种组织 C# 程序中出现的不同类型的方式。命名空间在概念上与计算机文件系统中的文件夹有些类似。与文件夹一样,命名空间可使类具有唯一的完全限定名称。一个 C# 程序包含一个或多个命名空间,每个命名空间或者由程序员定义,或者作为之前编写的类库的一部分定义。

例如,命名空间 System 包括 Console 类,该类包含读取和写入控制台窗口的方法。System 命名空间也包含许多其他命名空间,如 System.IO 和System.Collections。.NET Framework 本身就有八十多个命名空间,每个命名空间有上千个类:命名空间被用来最大程度地减少名称相似的类型和方法引起的混淆。

如果您在命名空间声明之外编写一个类,则计算机将为该类提供一个默认命名空间。

命名空间快捷方式

若要使用在 System 命名空间中包含的 Console 类中定义的 WriteLine 方法,请使用如下所示的代码行:

C#
System.Console.WriteLine("Hello, World!");

记住要在 Console 中包含的所有方法之前加 System,这一做法很快便会令人厌倦,因此将 using 指令插入到 C# 源文件的开头是一个非常有用的快捷方式,如下所示:

C#
using System;

包括 using System; 之后就会假定使用的是 System 命名空间,以后就可以这样编写代码:

C#
Console.WriteLine("Hello, World!");

创建您自己的命名空间

在编写大型程序时,经常会用到命名空间。使用您自己的命名空间对名称相似的方法和类型提供了一定程度的控制。例如,假定您在编写一个从磁盘加载统计数据和图像文件的应用程序。您可以创建两个新的命名空间,一个名为 Images,另一个名为 StatisticalData。因为使用的是两个不同的命名空间,所以在每个命名空间中定义的所有方法的名称都是唯一的,即使各个类具有相同的名称。这意味着您可以在两个命名空间中都拥有一个名为 FileHandling 的类,每个都包含一个名为 Load 的方法。可以通过引用 StatisticalData.FileHandling 或 Images.FileHandling 指定所需的类。

为 Visual C# 速成版项目中的每一个命名空间创建一个单独的文件夹是一种很好的做法。

示例

下面的示例定义两个命名空间,每个命名空间包含一个名为 FileHandling 的类。通过指定命名空间,可以迅速区分这两个类和它们包含的方法。

C#
namespace StatisticalData{    class FileHandling    {        public void Load() {}  // code to load statistical data    }}namespace Images {    class FileHandling    {        public void Load() {}  // code to load an image file    }}class Program{    static void Main()    {        StatisticalData.FileHandling data = new StatisticalData.FileHandling();        data.Load();        Images.FileHandling image = new Images.FileHandling();        image.Load();    }}

命名空间具有以下属性:

  • 组织大型代码项目。

  • 使用 . 运算符将它们分隔。

  • using directive 不必为每个类指定命名空间的名称。

  • global 命名空间是“根”命名空间:global::System 始终引用 .NET Framework 命名空间 System


来源于微软