原文: https://www.programiz.com/csharp-programming/namespaces

在本教程中,我们将学习命名空间,如何定义它,访问其成员以及在 C# 程序中使用它。

命名空间在 C# 中用于组织和提供一定程度的代码分离。 可以将它们视为包含其他命名空间,类等的容器。

命名空间可以具有以下类型作为其成员:

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

我们将在以后的教程中讨论这些主题。 现在,我们将坚持使用类和命名空间。

命名空间在 C# 程序中不是必需的,但在编写更简洁的代码和管理较大的项目中,它们确实起着重要的作用。

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

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

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


在 C# 中定义命名空间

我们可以使用namespace关键字在 C# 中定义一个命名空间:

  1. namespace Namespace-Name
  2. {
  3. //Body of namespace
  4. }

例如:

  1. namespace MyNamespace
  2. {
  3. class MyClass
  4. {
  5. public void MyMethod()
  6. {
  7. System.Console.WriteLine("Creating my namespace");
  8. }
  9. }
  10. }

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


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

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

  1. Namespace-Name.Member-Name

例如,如果我们需要创建一个MyClass对象,则可以这样做,

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

我们将在后面的教程中讨论有关创建对象的信息。 现在,仅关注如何访问类MyClass


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

  1. using System;
  2. namespace MyNamespace
  3. {
  4. public class SampleClass
  5. {
  6. public static void myMethod()
  7. {
  8. Console.WriteLine("Creating my namespace");
  9. }
  10. }
  11. }
  12. namespace MyProgram
  13. {
  14. public class MyClass
  15. {
  16. public static void Main()
  17. {
  18. MyNamespace.SampleClass.myMethod();
  19. }
  20. }
  21. }

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

  1. Creating my namespace

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

Main()方法中,使用dot (.)运算符调用myMethod()方法。


在 C# 中使用命名空间【using关键字】

可以使用using关键字在程序中包含命名空间。 语法是

  1. using Namespace-Name;

例如,

  1. using System;

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

一旦行

  1. using System;

包含在程序顶部。 我们可以写

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

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

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

C# 中的嵌套命名空间

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

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

  1. namespace MyNamespace
  2. {
  3. namespace NestedNamespace
  4. {
  5. // Body of nested namespace
  6. }
  7. }

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

  1. using System;
  2. // Nested Namespace
  3. namespace MyNamespace
  4. {
  5. namespace Nested
  6. {
  7. public class SampleClass
  8. {
  9. public static void myMethod()
  10. {
  11. Console.WriteLine("Nested Namespace Example");
  12. }
  13. }
  14. }
  15. }
  16. namespace MyProgram
  17. {
  18. public class MyClass
  19. {
  20. public static void Main()
  21. {
  22. MyNamespace.Nested.SampleClass.myMethod();
  23. }
  24. }
  25. }

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

  1. Nested Namespace Example

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

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