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 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

  本文转载自:w3cschool(编辑:雷林鹏 来源:网络)

雷林鹏分享:C# 命名空间(Namespace)的更多相关文章

  1. 雷林鹏分享:XML 命名空间

    XML 命名空间 XML 命名空间提供避免元素命名冲突的方法. 命名冲突 在 XML 中,元素名称是由开发者定义的,当两个不同的文档使用相同的元素名时,就会发生命名冲突. 这个 XML 携带 HTML ...

  2. 雷林鹏分享:C# 程序结构

    C# 程序结构 在我们学习 C# 编程语言的基础构件块之前,让我们先看一下 C# 的最小的程序结构,以便作为接下来章节的参考. C# Hello World 实例 一个 C# 程序主要包括以下部分: ...

  3. 雷林鹏分享:C# 基本语法

    C# 基本语法 C# 是一种面向对象的编程语言.在面向对象的程序设计方法中,程序由各种相互交互的对象组成.相同种类的对象通常具有相同的类型,或者说,是在相同的 class 中. 例如,以 Rectan ...

  4. 雷林鹏分享:C# 变量

    C# 变量 一个变量只不过是一个供程序操作的存储区的名字.在 C# 中,每个变量都有一个特定的类型,类型决定了变量的内存大小和布局.范围内的值可以存储在内存中,可以对变量进行一系列操作. 我们已经讨论 ...

  5. 雷林鹏分享:C# 数组(Array)

    C# 数组(Array) 数组是一个存储相同类型元素的固定大小的顺序集合.数组是用来存储数据的集合,通常认为数组是一个同一类型变量的集合. 声明数组变量并不是声明 number0.number1... ...

  6. 雷林鹏分享:C# 文件的输入与输出

    C# 文件的输入与输出 一个 文件 是一个存储在磁盘中带有指定名称和目录路径的数据集合.当打开文件进行读写时,它变成一个 流. 从根本上说,流是通过通信路径传递的字节序列.有两个主要的流:输入流 和 ...

  7. 雷林鹏分享:C# 反射(Reflection)

    C# 反射(Reflection) 反射(Reflection) 对象用于在运行时获取类型信息.该类位于 System.Reflection 命名空间中,可访问一个正在运行的程序的元数据. Syste ...

  8. 雷林鹏分享:C# 泛型(Generic)

    C# 泛型(Generic) 泛型(Generic) 允许您延迟编写类或方法中的编程元素的数据类型的规范,直到实际在程序中使用它的时候.换句话说,泛型允许您编写一个可以与任何数据类型一起工作的类或方法 ...

  9. 雷林鹏分享:Ruby Web Services 应用 - SOAP4R

    Ruby Web Services 应用 - SOAP4R 什么是 SOAP? 简单对象访问协议(SOAP,全写为Simple Object Access Protocol)是交换数据的一种协议规范. ...

随机推荐

  1. zw版【转发·台湾nvp系列Delphi例程】HALCON AngleLl

    zw版[转发·台湾nvp系列Delphi例程]HALCON AngleLl procedure TForm1.Button1Click(Sender: TObject);var Row1, Row2 ...

  2. uva11383 转化为 二分图匹配

    给定一个n*n矩阵,每个格子里都有一个正整数w(i,j).你的任务是给每行确定一个整数row(i),没列也确定一个正整数col(i),使得对于任意格子(i,j),w(i,j) <= row(i) ...

  3. swift 错误集锦

    1.注册 NIB 出现错误 // error:'registerNib(_:forCellReuseIdentifier:)' has been renamed to 'register' (_:fo ...

  4. mysql B+Tree索引

    原文地址:http://blog.codinglabs.org/articles/theory-of-mysql-index.html 数据结构及算法基础 索引的本质 MySQL官方对索引的定义为:索 ...

  5. python 有道翻译

    import requests import time import random import hashlib i = str(int(time.time()*1000)+random.randin ...

  6. python练习题,写一个方法 传进去列表和预期的value 求出所有变量得取值可能性(例如list为[1,2,3,4,5,6,12,19],value为20,结果是19+1==20只有一种可能性),要求时间复杂度为O(n)

    题目:(来自光荣之路老师)a+b==valuea+b+c=valuea+b+c+d==valuea+b+c+d+...=valuea和b....取值范围都在0-value写一个方法 传进去列表和预期得 ...

  7. python socket编程函数介绍

    网上看到一个socket中常用函数的介绍,记录一下 https://blog.csdn.net/rebelqsp/article/details/22109925

  8. DeepMind已将AlphaGo引入多领域 Al泡沫严重

    DeepMind已将AlphaGo引入多领域 Al泡沫严重 在稳操胜券的前提下,谷歌旗下的AlphaGo还是向柯洁下了战书.4月10日,由中国围棋协会.浙江省体育局.谷歌三方联合宣布,将于5月23日至 ...

  9. htpasswd命令的使用

    htpasswd的基本用法 htpasswd是Apache服务器中生成用户认证的一个工具,仅说明htpasswd的用法: htpasswd参数 -c 创建passwdfile.如果passwdfile ...

  10. Linux 系统版本信息

    1.# uname -a   (Linux查看版本当前操作系统内核信息) 2.# cat /proc/version (Linux查看当前操作系统版本信息) 3.# cat /etc/issue  或 ...