在本教程中,我们将学习命名空间,如何定义它,访问其成员以及在 C# 程序中使用它。
命名空间在 C# 中用于组织和提供一定程度的代码分离。 可以将它们视为包含其他命名空间,类等的容器。
命名空间可以具有以下类型作为其成员:
- 命名空间(嵌套命名空间)
- 类
- 接口
- 结构
- 委托
我们将在以后的教程中讨论这些主题。 现在,我们将坚持使用类和命名空间。
命名空间在 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
关键字在程序中包含命名空间。 语法是
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()
。