关于命名空间

来源:互联网 发布:淘宝u站申请 编辑:程序博客网 时间:2024/06/05 17:43

为什么要使用命名空间

在应用程序开发过程中,类和类成员的名称是丰富的,为了描述一个具体的对象,需要对类成员进行设计。在设计类和类成员过程中,不可避免的类成员中的方法或者类的名称会出现相同的情况,这样就会使类的使用变得复杂,代码的混乱造成可读性降低,使用命名空间可以解决这样的问题。

比如,下面的这个例子

namespace Programmer1//程序员1的命名空间

{

   public class Animal // Programmer1的Animal类

    {

       public string type;//声明字段

    }

}

namespace Programmer2//程序员2的命名空间

{

   public class Animal// Programmer1的Animal类

    {

       public string type;//声明字段

    }

}

上面的代码中,创建了同样的两个类Animal以及两个类成员type。在主函数中,开发人员很难区分到底是使用哪一个类进行对象的创建和初始化,因为通常情况下,每个程序员可能只负责该程序员的模块或者代码,当整合的时候,代码就会变得难以调用或难以维护。

再如,下面的这段代码:

namespace Programmer1//程序员1的命名空间

{

   public class Animal // Programmer1的Animal类

    {

       public string type;//声明字段

    }

}

namespace Programmer2//程序员2的命名空间

{

   public class Animal// Programmer2的Animal类

    {

       public string type;//声明字段

    }

}

namespace MyClass//主程序的命名空间

{

   class Program//主程序类

    {

       static void Main(string[] args) //主程序入口方法

       {

           Programmer1.Animal bird = new Programmer1.Animal();//说明是程序员1的命名空间下的Animal

           bird.type = "bird"; //初始化字段

       }

}

 

上面的代码很好的解决了类名称相同的情况下开发和维护的困难。

 

创建命名空间

 

上面说到了命名空间的好处,但是如何创建命名空间呢?

namespace 命名空间

    //类以及类成员
}

namespace声明了一个命名空间,名称取命名空间的名称,在由{}大括号内引用的类成员来创建类。

看下面的例子:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;//系统命名空间的使用

using MyNamsSpace;//自定义命名空间的使用

namespace MyClass

{

   class Program

    {

       static void Main(string[] args)

       {

           Class1 myclass = new Class1();//创建对象,该类完整名称是MyNameSpace.MyClass

       }

}

 

上面的代码中引用了MyNameSpace命名空间,并访问了命名空间中的类,通过该类创建了一个对象。分层设计时软件设计中常用的设计方法,同设计模式一样,分层设计也是为了规范软件的开发和维护、降低软件开发成本、将软件模块化。但是过多的使用命名空间和分层设计也会造成层次过多无法维护的相反效果。

 

下面介绍一些简单的命名空间

一、基础命名空间:

System.Collections 包含了一些与集合相关的类型,比如列表、队列、位数组、哈希表和字典等。

System.IO  包含了一些数据流类型并提供了文件和目录同步异步读写

System.Text  包含了一些表示字符编码的类型并提供了字符串的操作和格式化

System.Reflection  包含了一些提供加载类型、方法和字段的托管视图以及动态创建调用类型功能的类型。

System.T和reading  提供启用多线程的类和接口

二、图形命名空间

System.Drawing 主要的GDI+命名空间定义了许多类型,实现基本的绘图类型和无所不能的Graphics对象

System.Drawing2D  提供了高级的二维和矢量图像的功能

System.Drawing.Imaging 定义了一些类型实现图形图像的操作

System.Drawing.Text  提供了操作字体集合的功能

System.Drawing.Pringting 定义了一些类型实现在打印纸上绘制图像,和打印机交互以及格式化某个打印任务的总体外观等功能。

还有很多,其他的就不再一一列举了。

原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 苹果4g网络慢怎么办 医院没有号了怎么办啊 fgo宝具动画卡顿怎么办 死刑犯在执行前死亡怎么办 汕头交警 违章扣分怎么办办理 幼儿园家长不保险应该怎么办 csgo掉白银坑了怎么办 错过教资认定现场确认怎么办 乡村建设导致民房开裂怎么办 项目部公章丢了怎么办 手机掉了没有卡怎么办 苹果系统软件删了还是出现怎么办 钉钉检测到作弊怎么办 电脑麦说话声音小怎么办 穿越火线麦克风有杂音怎么办 手闲不住就抠东西怎么办 大便堵在肛门口怎么办 在外地流量不够用怎么办 电脑键盘数字键没反应怎么办 音响音量键坏了怎么办 摩托罗拉移动电话通话没声音怎么办 摩托罗拉对讲机充电座坏了怎么办 手机导航键太灵敏怎么办 经侦大队不立案怎么办 槐茂酱菜太咸怎么办 法院执法局执法不公怎么办 搞养殖卖不出去怎么办 孔雀吃了蚯蚓该怎么办 多肉幼苗长徒了怎么办 小鸵鸟嘴断了怎么办 武汉早谢怎么办博大直上 威猛先生伤手了怎么办 嗓子眼边条线下边长块肉怎么办 线长在肉里怎么办 北京买车没有号怎么办 租的车处理违章怎么办 以租代购车不要怎么办 订车的合同掉了怎么办 买车合同丢了怎么办 车的证件都丢了怎么办 桃树直立的徒长枝怎么办