多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# C# 编程中的命名空间 > 原文: [https://www.programiz.com/csharp-programming/namespaces](https://www.programiz.com/csharp-programming/namespaces) #### 在本教程中,我们将学习命名空间,如何定义它,访问其成员以及在 C# 程序中使用它。 命名空间在 C# 中用于组织和提供一定程度的代码分离。 可以将它们视为包含其他命名空间,类等的容器。 命名空间可以具有以下类型作为其成员: 1. 命名空间(嵌套命名空间) 2. 类 3. 接口 4. 结构 5. 委托 我们将在以后的教程中讨论这些主题。 现在,我们将坚持使用类和命名空间。 命名空间在 C# 程序中不是必需的,但在编写更简洁的代码和管理较大的项目中,它们确实起着重要的作用。 让我们了解实际场景中命名空间的概念。 我们的计算机中有大量文件和文件夹。 想象一下,如果将它们放在单个目录中将很难管理它们。 这就是为什么我们将相关文件和文件夹放在单独的目录中的原因。 这有助于我们正确管理数据。 命名空间的概念在 C# 中类似。 通过将相关成员放在同一命名空间中,它可以帮助我们**组织**不同的成员。 命名空间还解决了**命名冲突**的问题。 当放在不同命名空间中的两个或多个类可以具有相同的名称。 * * * ## 在 C# 中定义命名空间 我们可以使用`namespace`关键字在 C# 中定义一个命名空间: ```cs namespace Namespace-Name { //Body of namespace } ``` 例如: ```cs namespace MyNamespace { class MyClass { public void MyMethod() { System.Console.WriteLine("Creating my namespace"); } } } ``` 在上面的示例中,创建了命名空间`MyNamespace`。 它由一个类`MyClass`作为其成员。`MyMethod`是`MyClass`类的方法。 * * * ## 在 C# 中访问命名空间的成员 可以使用`dot(.)`运算符访问命名空间的成员。 访问命名空间成员的语法是: ```cs Namespace-Name.Member-Name ``` 例如,如果我们需要创建一个`MyClass`对象,则可以这样做, ```cs MyNamespace.MyClass myClass = new MyNamespace.MyClass(); ``` 我们将在后面的教程中讨论有关创建对象的信息。 现在,仅关注如何访问类`MyClass`。 * * * ## 示例 1:在 C# 程序中引入命名空间 ```cs 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(); } } } ``` 当我们运行程序时,输出将是: ```cs Creating my namespace ``` 在上面的程序中,我们创建了自己的命名空间`MyNamespace`并从`MyClass`中的`Main()`方法访问其成员。 如前所述,`dot (.)`运算符用于访问命名空间的成员。 在`Main()`方法中,使用`dot (.)`运算符调用`myMethod()`方法。 * * * ## 在 C# 中使用命名空间【`using`关键字】 可以使用`using`关键字在程序中包含命名空间。 语法是 ```cs using Namespace-Name; ``` 例如, ```cs using System; ``` 这种方法的优点是,我们不必在每次访问该命名空间时都为其指定完全限定名称。 一旦行 ```cs using System; ``` 包含在程序顶部。 我们可以写 ```cs Console.WriteLine("Hello World!"); ``` 而不是完全限定的名称,即 ```cs System.Console.WriteLine("Hello World!"); ``` * * * ## C# 中的嵌套命名空间 一个命名空间可以包含另一个命名空间。 它称为嵌套命名空间。 嵌套的命名空间及其成员也可以使用`dot (.)`运算符进行访问。 创建嵌套命名空间的语法如下: ```cs namespace MyNamespace { namespace NestedNamespace { // Body of nested namespace } } ``` * * * ### 示例 2:C# 中的嵌套命名空间 ```cs 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(); } } } ``` 当我们运行程序时,输出将是: ```cs Nested Namespace Example ``` 此示例说明了如何在 C# 中实现嵌套命名空间。 在这里,我们现在在`MyNamespace`内部有一个名为`Nested`的额外命名空间。 因此,我们不必使用`MyNamespace.SampleClass.myMethod()`,而必须使用`MyNamespace.Nested.SampleClass.myMethod()`。