📜  C#编程中的命名空间

📅  最后修改于: 2020-10-12 04:42:59             🧑  作者: Mango

在本教程中,我们将学习命名空间,如何定义它,访问其成员以及在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#中访问命名空间的成员

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

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()方法访问其成员。如前所述, dot (.) 运算符用于访问名称空间的成员 。

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


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

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

using Namespace-Name;

例如,

using System;

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

一旦行

using System;

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

Console.WriteLine("Hello World!");

而不是全限定名称,即

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

C#中的嵌套命名空间

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

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

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.SampleClass.myMethod() ,而必须使用MyNamespace.Nested.SampleClass.myMethod()