C# 命名空间(Namespace)相关知识总结

 更新时间:2020年06月22日 10:41:39   作者:菜鸟教程  
这篇文章主要介绍了C# 命名空间(Namespace)的相关知识,文中讲解非常细致,代码帮助大家更好的理解和学习,感兴趣的朋友可以参考下

命名空间的设计目的是提供一种让一组名称与其他名称分隔开的方式。在一个命名空间中声明的类的名称与另一个命名空间中声明的相同的类的名称不冲突。

我们举一个计算机系统中的例子,一个文件夹(目录)中可以包含多个文件夹,每个文件夹中不能有相同的文件名,但不同文件夹中的文件可以重名。

定义命名空间

命名空间的定义是以关键字 namespace 开始,后跟命名空间的名称,如下所示:

namespace namespace_name
{
  // 代码声明
}

为了调用支持命名空间版本的函数或变量,会把命名空间的名称置于前面,如下所示:

namespace_name.item_name;

下面的程序演示了命名空间的用法:

using System;
namespace first_space
{
  class namespace_cl
  {
   public void func()
   {
     Console.WriteLine("Inside first_space");
   }
  }
}
namespace second_space
{
  class namespace_cl
  {
   public void func()
   {
     Console.WriteLine("Inside second_space");
   }
  }
} 
class TestClass
{
  static void Main(string[] args)
  {
   first_space.namespace_cl fc = new first_space.namespace_cl();
   second_space.namespace_cl sc = new second_space.namespace_cl();
   fc.func();
   sc.func();
   Console.ReadKey();
  }
}

当上面的代码被编译和执行时,它会产生下列结果:

Inside first_space
Inside second_space

using 关键字

using 关键字表明程序使用的是给定命名空间中的名称。例如,我们在程序中使用 System 命名空间,其中定义了类 Console。我们可以只写:

Console.WriteLine ("Hello there");

我们可以写完全限定名称,如下:

System.Console.WriteLine("Hello there");

您也可以使用 using 命名空间指令,这样在使用的时候就不用在前面加上命名空间名称。该指令告诉编译器随后的代码使用了指定命名空间中的名称。下面的代码演示了命名空间的应用。

让我们使用 using 指定重写上面的实例:

using System;
using first_space;
using second_space;

namespace first_space
{
  class abc
  {
   public void func()
   {
     Console.WriteLine("Inside first_space");
   }
  }
}
namespace second_space
{
  class efg
  {
   public void func()
   {
     Console.WriteLine("Inside second_space");
   }
  }
} 
class TestClass
{
  static void Main(string[] args)
  {
   abc fc = new abc();
   efg sc = new efg();
   fc.func();
   sc.func();
   Console.ReadKey();
  }
}

当上面的代码被编译和执行时,它会产生下列结果:

Inside first_space
Inside second_space

嵌套命名空间

命名空间可以被嵌套,即您可以在一个命名空间内定义另一个命名空间,如下所示:

namespace namespace_name1 
{
  // 代码声明
  namespace namespace_name2 
  {
   // 代码声明
  }
}

您可以使用点(.)运算符访问嵌套的命名空间的成员,如下所示:

using System;
using SomeNameSpace;
using SomeNameSpace.Nested;

namespace SomeNameSpace
{
  public class MyClass
  {
    static void Main()
    {
      Console.WriteLine("In SomeNameSpace");
      Nested.NestedNameSpaceClass.SayHello();
    }
  }

  // 内嵌命名空间
  namespace Nested 
  {
    public class NestedNameSpaceClass
    {
      public static void SayHello()
      {
        Console.WriteLine("In Nested");
      }
    }
  }
}

当上面的代码被编译和执行时,它会产生下列结果:

In SomeNameSpace
In Nested

以上就是C# 命名空间(Namespace)相关知识总结的详细内容,更多关于C# 命名空间(Namespace)的资料请关注脚本之家其它相关文章!

相关文章

  • C#中fixed关键字的作用总结

    C#中fixed关键字的作用总结

    以下是对C#中fixed关键字的作用进行了详细的总结介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-09-09
  • 使用C#9中records作为强类型ID的实例教程

    使用C#9中records作为强类型ID的实例教程

    这篇文章主要给大家介绍了关于使用C#9中records作为强类型ID的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • C#中跨线程访问控件问题解决方案分享

    C#中跨线程访问控件问题解决方案分享

    这篇文章主要介绍了C#中跨线程访问控件问题解决方案,有需要的朋友可以参考一下
    2013-11-11
  • C#中的ICustomFormatter及IFormatProvider接口用法揭秘

    C#中的ICustomFormatter及IFormatProvider接口用法揭秘

    这篇文章主要介绍了C#中的ICustomFormatter及IFormatProvider接口用法揭秘,本文能过分析一段代码得出一些研究结果,需要的朋友可以参考下
    2015-06-06
  • C#创建Windows服务与服务的安装、卸载

    C#创建Windows服务与服务的安装、卸载

    这篇文章介绍了C#创建Windows服务与服务的安装、卸载,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-02-02
  • Unity UGUI的VerticalLayoutGroup垂直布局组件介绍使用

    Unity UGUI的VerticalLayoutGroup垂直布局组件介绍使用

    这篇文章主要为大家介绍了Unity UGUI的VerticalLayoutGroup垂直布局组件介绍使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-07-07
  • C# DataTable数据遍历优化详解

    C# DataTable数据遍历优化详解

    这篇文章主要介绍了C# DataTable数据遍历优化详解,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01
  • C# 中的 IReadOnlyDictionary 和 IReadOnlyList实例详解

    C# 中的 IReadOnlyDictionary 和 IReadOnlyLis

    C# 中的IReadOnlyDictionary和IReadOnlyList是接口,用于表示只读的字典和只读的列表,这些接口提供了对集合的只读访问权限,即不允许对集合进行修改操作,这篇文章主要介绍了C# 中的 IReadOnlyDictionary 和 IReadOnlyList实例详解,需要的朋友可以参考下
    2024-03-03
  • 在C#中优化JPEG压缩级别和文件大小方式

    在C#中优化JPEG压缩级别和文件大小方式

    文章介绍了如何在C#中优化JPEG压缩级别和文件大小,通过使用文件菜单加载图像文件并选择不同的压缩级别,程序将图像保存为临时文件并显示生成的图像和文件大小,关键方法SaveJpg使用给定的压缩指数保存JPG文件,并通过GetEncoderInfo获取编码器信息
    2025-01-01
  • 详解C#如何自定义书写中间件

    详解C#如何自定义书写中间件

    中间件是一种装配到应用管道以处理请求和响应的软件,是介于request与response处理过程之间的一个插件,本文主要介绍了如何自定义书写中间件,需要的可以参考下
    2023-08-08

最新评论