主页
  • 主页
  • 分类
  • 热文
  • 教程
  • 面试
  • 标签
C#

C# 基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

C# 高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

基础

C# 主页
C# 概述
C# 环境
C# 程序结构
C# 基本语法
C# 数据类型
C# 类型转换
C# 变量
C# 常量
C# 运算符
C# 决策结构
C# 循环结构
C# 封装
C# 方法
C# 可空类型
C# 数组
C# 字符串
C# 结构体
C# 枚举
C# 类
C# 继承
C# 多态性
C# 操作符重载
C# 接口
C# 命名空间
C# 预处理
C# 正则表达式
C# 异常
C# 文件与流

高级

C# 属性(Attributes)
C# 反射
C# 属性(Properties)
C# 索引器
C# 委托
C# 事件
C# 集合
C# 泛型
C# 匿名方法
C# 不安全代码
C# 线程

C# 命名空间


上一章 下一章

命名空间在 C# 中的作用

命名空间设计用于提供一种方法来保持一组名称与另一组名称分开。在一个命名空间中声明的类名不会与在另一个命名空间中声明的相同类名冲突。

定义命名空间

命名空间定义以关键字 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 关键字表示程序正在使用给定命名空间中的名称。例如,在我们的程序中,我们正在使用 System 命名空间。Console 类是在那里定义的。我们只需要写:

Console.WriteLine ("Hello there");

我们可以写出完全限定的名称:

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

您还可以使用 using namespace 指令来避免在前面加上命名空间。此指令告诉编译器后续代码正在使用指定命名空间中的名称。命名空间对于以下代码是隐含的:

让我们改写前面的例子,带有 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 first_space;
using first_space.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
上一章 下一章
阅读号二维码

关注阅读号

联系二维码

联系我们

© 2024 Yoagoa. All rights reserved.

粤ICP备18007391号

站点地图