命名空间与类库

在使用面向对象技术开发的现代软件系统中,经常拥有数百甚至上千个类,为了方便地

管理这些类,面向对象技术引入了“命名空间(namespace)”的概念。

3.1命名空间

命名空间可以看成是类的“容器”,它可以包含多个类,例如,以下代码创建了一个命

名空间 MyDLL,在其中放置了两个类——MyPublicClass和  MyInnerClass:

namespace  MyDLL

{

public class  MyPublicClass

{

}

class  MyInnerClass

{

}

}

如果要使用命名空间中的类,需要指明其命名空间。例如:

MyDLL.MyPublicClass obj=new MyDLL.MyPublicClass();

如果希望少写一点代码,可以在源代码文件开头使用 using语句引用  MyDLL命名空间:

using  MyDLL;

在源代码文件中引用了特定的命名空间之后,就可以直接使用其中的类而不再需要指明

其所属的命名空间。

下面对命名空间这一概念做更进一步的讨论。

.NET  Framework使用命名空间来管理所有的类。如果把类比喻成书的话,则命名空间

类似于放书的书架,书放在书架上,类放在命名空间里。

当我们去图书馆查找一本书时,需要指定这本书的编号,编号往往规定了书放在哪个书

库的哪个书架上,通过逐渐缩小的范围:图书馆Æ书库Æ书架,最终可以在某个书架中找到

这本书。

类似地,可以采用图书馆保存图书类似的方法来管理类,通过逐渐缩小的范围:最大的

命名空间Æ子命名空间Æ孙命名空间Æ……,最终找到一个类。

所以,命名空间是可以嵌套的,请看以下示例代码:

namespace MyDLL

{

//…

namespace MyChildDLL

{

public class  MyPublicChildClass

{

}

}

}

这时,外界可通过以下格式的声明来使用此类型:

MyDLL.MyChildDLL.MyPublicChildClass obj2 =

new  MyDLL.MyChildDLL.MyPublicChildClass();

同样可以使用 using语句缩短语句的长度。不再赘述。

3.2类库

为了提高软件开发的效率,人们在整个软件开发过程中大量应用了软件工程的模块化原

则,将可以在多个项目中使用的代码封装为可重用的软件模块,其于这些可复用的软件模块,

再开发新项目就成为“重用已有模块,再开发部分新模块,最后将新旧模块组装起来”的

过程。整个软件开发过程类似于现代工业的生产流水线,生产线上的每个环节都由特定的人

员负责,整个生产线上的工作人员既分工明确又相互合作,大大地提高了生产效率。

在组件化开发大行其道的今天,人们通常将可以重用的软件模块称为“软件组件”。

类库项目编译之后,会生成一个动态链接库(DLL:Dynamic Link Library)文件。这就

是可以被重用的.NET软件组件——程序集。默认情况下,类库文件名就是项目名加上“.dll”

后缀。

每个类库项目都拥有一个默认的命名空间,可以通过类库项目的属性窗口来指定。

需要仔细区分“类库项目”、“程序集”和“命名空间”这三个概念的区别:

(1)每个类库项目编译之后,将会生成一个程序集。

(2)类库项目中可以拥有多个类,这些类可属于不同的命名空间。

(3)不同的类库项目可以定义相同的命名空间。

根据上述三个特性,可以得到以下结论:

“命名空间”是一个逻辑上的概念,它的物理载体是“程序集”,具体体现为“DLL”(或

EXE)文件。在Visual  Studio中,可通过创建“类库”类型的项目生成程序集。

一个程序集可以有多个命名空间,而一个命名空间也可以分布于多个程序集。

一个项目添加完对特定程序集的引用之后,就可以直接创建此程序集中的类了,当然要

注意指明其命名空间。

时间: 2024-10-22 15:10:11

命名空间与类库的相关文章

12-12面向对象--引用类型与值类型、命名空间与类库

五.引用类型与值类型 .NET将变量的类型分为值类型与引用类型.例如int和float之类的变量属于值类型,而“类“类型的变量属于引用类型. 值类型与引用类型的变量在使用上是有区别的. 值类型的变量在一定义之后就可以马上使用. 引用类型的变量定义之后,还必须用new关键字创建对象后才可以使用. 如上图,创建两个新的对象时,直接比较两个对象是否相等,返回的bool值为false.因为两个对象都是新开辟的一个空间变量,彼此没有任何关系,所有是不相等的. 如图2:1)创建的第一个新的对象ss1,给ss

C#面向对象课程 类与对象,方法重载,类的静态成员,命名空间和类库12月22日

一.类是面向对象课程的基本单元. 在类的里面可以直接定义字段(成员变量),也可以定义方法(函数). 例如: 这里的public是修饰符,修饰符的作用是用来限定它的可访问范围. 两个同范围(同一个类中,或者父子类中)两个同名但参数类型不同或者参数个数不同的方法互相间构成重载关系. 两个构成重载关系的方法(函数)必须满足以下条件: (1)方法(函数)名相同: (2)参数类型不同,或参数个数不同.这里需要注意的是,函数返回值类型的不同不是函数重载的判断条件. 二.静态成员 属性.方法和字段等成员是对象

4、面向对象以及winform的简单运用(继承与多态、命名空间与类库)

继承 继承既子类与父类之间的关系.子类是父类的一种特例,子类拥有父类所没有的功能. 子类与父类之间的相互赋值——例: Parent p; Son c = new Son(); p = c; //正确,子类对象可以传给父类变量 c = p; //错误,父类对象变量不可以直接赋值给子类变量 如果确信父类变量中所引用的对象的确是子类类型,则可以通过类型强制转换进行赋值,这种方法便是多态.例: c = (Child)p; //或 c = p a Child; 命名空间与类库 命名空间(namespace

1212面向对象--引用类型与值类型、命名空间与类库、继承(父类与子类)

五.引用类型与值类型 .NET将变量的类型分为值类型与引用类型.例如int和float之类的变量属于值类型,而“类“类型的变量属于引用类型. 值类型与引用类型的变量在使用上是有区别的. 值类型的变量在一定义之后就可以马上使用. 引用类型的变量定义之后,还必须用new关键字创建对象后才可以使用. 如上图,创建两个新的对象时,直接比较两个对象是否相等,返回的bool值为false.因为两个对象都是新开辟的一个空间变量,彼此没有任何关系,所有是不相等的. 如图2:1)创建的第一个新的对象ss1,给ss

三、命名空间与类库

在使用面向对象技术开发的现代软件系统中,经常拥有数百甚至上千个类,为了方便的管理这些类,面向对象技术引入了“命名空间(namespace)”的概念. 3.1 命名空间  命名空间可以看成是类的“容器”,它可以包含多个类,例如,以下代码创建了一个命名空间MyDLL,在其中放置了两个类——MyPublicClass和MyInnerClass: namespace MyDLL { public class MyPublicClass { } class MyInnerClass { } } 如果要使用

thinkphp5.0 中使用第三方无命名空间的类库

ThinkPHP5建议所有的扩展类库都使用命名空间定义,如果你的类库没有使用命名空间,则不支持自动加载,必须使用Loader::import方法先导入文件后才能使用. 首先要在文件头部使用loader thinkphp系统类 use think\Loader; 页面内使用 Loader::import('文件夹.文件名',EXTEND_PATH); 引入后实例化类 在类名前加  \类名 既可以使用该类

C#中的程序集和命名空间

C#中的程序集和命名空间 如果说命名空间是类库的逻辑组织形式,那么程序集就是类库的物理组织形式.只有同时指定类型所在的命名空间及实现该类型的程序集,才能完全限定该类型.<精通.NET核心技术--原理与架构> 程序集和命名空间不存在必然联系,一个程序集可以包含多个命名空间,同一个命名空间也可以分放在几个程序集. 程序集是应用程序的部署单元..NET应用程序包含一个或多个程序集.通常扩展名是EXE或DLL 的.NET可执行程序称为程序集..NET程序集包含元数据,这些元数据描述了程序集中定义的所有

C#面向对象&mdash;&mdash;对象成员、方法重载、引用类库等

一.方法重载: 1.两个函数同名,就互相构成方法的重载关系 2.重载的函数,必须跟其他函数之间具有不同的参数类型或参数个数 二.字段与属性 类的字段: 类里面是可以直接定义变量的,这些变量就叫类的字段,也叫成员变量. 类的属性(扳手): 本身不存储数据,用来给字段赋值和取值的一个存取过程.可以保护字段. 包含读访问器和写访问器两个函数: 读访问器 get { return Name; } 写访问器 set {                 if(value.Length<=3)        

02-25 新建类库的使用方法

之前也有提到过,一定要区分清楚命名空间和类库的区别: 1)命名空间:又称程序集,可以看做成类的“容器”,可以包含多个类 2)类库:许许多多的类组合在一起,就相当于好多文件组成一个压缩包. 新建一个.dll结尾的类库项目,VS会自动在项目中添加一个Class1.cs的文件,可在此类文件中书写代码,或者添加新的类.一个类库项目中可容纳的类的数目没有限制,但只有声明public的类可以被外界所使用. [注意]“命名空间”是一个逻辑上的概念,他的物理载体是“程序集”,具体体现为“DLL”(或EXE)文件