C# 编程中的命名空间

命名空间用于 C# 中组织代码并提供代码级别的分离。它们可以被视为一个容器,其中包含其他命名空间、类等。

命名空间可以包含以下类型的成员

  1. 命名空间(嵌套命名空间)
  2. 接口
  3. 结构体
  4. 委托

我们将在后续教程中讨论这些主题。现在,我们将只关注类和命名空间。

命名空间在 C# 程序中不是强制性的,但它们在编写更清晰的代码和管理大型项目方面起着重要作用。

让我们通过一个真实场景来理解命名空间的概念。我们的计算机中有大量的文件夹和文件。想象一下,如果它们都放在一个目录下,管理起来该有多么困难。这就是为什么我们将相关文件和文件夹放在单独的目录中的原因。这有助于我们正确管理数据。

C# 中的命名空间概念与之类似。它通过将相关成员放在同一个命名空间中来帮助我们**组织**不同的成员。

命名空间还解决了**命名冲突**问题。在不同命名空间中的两个或多个类可以具有相同的名称。


在 C# 中定义命名空间

我们可以使用 `namespace` 关键字在 C# 中定义一个命名空间,如下所示:

namespace Namespace-Name
{
    //Body of namespace
}

例如

namespace MyNamespace
{
    class MyClass
    {
        public void MyMethod()
        {
            System.Console.WriteLine("Creating my namespace");
		}
	}
}

在上面的示例中,创建了一个名为 `MyNamespace` 的命名空间。它包含一个名为 `MyClass` 的类作为其成员。`MyMethod` 是 `MyClass` 的一个方法。


在 C# 中访问命名空间成员

命名空间的成员可以使用 `点(.)` 运算符进行访问。访问命名空间成员的语法是:

Namespace-Name.Member-Name

例如,如果我们想创建一个 `MyClass` 的对象,可以这样做:

MyNamespace.MyClass myClass = new MyNamespace.MyClass();

我们将在后续教程中讨论创建对象。现在,请专注于如何访问 `MyClass` 类。


示例 1:在 C# 程序中引入命名空间

using System;

namespace MyNamespace
{
    public class SampleClass
    {
        public static void myMethod()
        {
            Console.WriteLine("Creating my namespace");
        }
    }
}
 
namespace MyProgram
{
    public class MyClass
    {
        public static void Main()
        {
            MyNamespace.SampleClass.myMethod();
        }
    }
}

当我们运行程序时,输出将是:

Creating my namespace

在上面的程序中,我们创建了自己的命名空间 `MyNamespace`,并在 `MyClass` 中的 `Main()` 方法中访问了它的成员。如前所述,`点 (.)` 运算符用于访问命名空间成员。

在 `Main()` 方法中,使用 `点 (.)` 运算符调用了 `myMethod()` 方法。


在 C# 中使用命名空间 [using 关键字]

可以使用 `using` 关键字将命名空间包含在程序中。语法如下:

using Namespace-Name;

例如,

using System;

这种方法的优点是,我们不必每次访问该命名空间的成员时都指定其完全限定名称。

一旦包含该行

using System;

在程序顶部。我们可以写

Console.WriteLine("Hello World!");

而不是完全限定名称,即:

System.Console.WriteLine("Hello World!");

C# 中的嵌套命名空间

一个命名空间可以包含另一个命名空间。这称为嵌套命名空间。嵌套命名空间及其成员也可以使用 `点(.)` 运算符进行访问。

创建嵌套命名空间的语法如下:

namespace MyNamespace
{
    namespace NestedNamespace
    {
        // Body of nested namespace
	}
}

示例 2:C# 中的嵌套命名空间

using System;
 
// Nested Namespace
namespace MyNamespace
{
    namespace Nested
    {
        public class SampleClass
        {
            public static void myMethod()
            {
                Console.WriteLine("Nested Namespace Example");
            }
        }
    }
}
 
namespace MyProgram
{
    public class MyClass
    {
        public static void Main()
        {
            MyNamespace.Nested.SampleClass.myMethod();
        }
    }
}

当我们运行程序时,输出将是:

Nested Namespace Example

此示例说明了如何在 C# 中实现嵌套命名空间。

在这里,我们在 `MyNamespace` 中有了一个名为 `Nested` 的额外命名空间。因此,我们必须使用 `MyNamespace.Nested.SampleClass.myMethod()`,而不是 `MyNamespace.SampleClass.myMethod()`。

你觉得这篇文章有帮助吗?

我们的高级学习平台,凭借十多年的经验和数千条反馈创建。

以前所未有的方式学习和提高您的编程技能。

试用 Programiz PRO
  • 交互式课程
  • 证书
  • AI 帮助
  • 2000+ 挑战