命名空间的定义和格式是什么,什么是命名空间及使用方式

http://www.itjxue.com  2023-01-06 17:48  来源:未知  点击次数: 

ASP.NET中的命名空间的简单介绍

在ASP NET中 NET Framework为我们提供了丰富的基类 为了能在程序中引用这些基类 我们必须先引用这些基类的命名空间 我们都知道 如果我们想在C++中引用一个文件函数时 我必须先调用该文件 例如#include studio h 其实它和ASP NET中命名空间的引用是同一原理 但是它们又有本质上的区别

在ASP NET中 命名空间提供了一种组织相关类和其他类型的方式 与文件或组件不同 命名空间是一种逻辑组合 而不是物理组合 在C#文件中定义类时 可以把它包括在命名空间定义中 以后 在定义另一个类 在另一个文件中执行相关操作时 就可以在同一个命名空间中包含它 创建一个逻辑组合 告诉使用类的开发人员这两个类是如何相关的以及如何使用它们:

using System;

using System Data;

using System Configuration;

using System Web;

using System Web Security;

namespace vlink

{

public class Agent

{

把一个类型放在命名空间中 可以有效地给这个类型指定一个较长的名称 该名称包括类型的命名空间 后面是句点( )和类的名称 在上面的例子中 Agen全名是vlink Agent 这样 有相同短名的不同的类就可以在同一个程序中使用了 也可以在命名空间中嵌套其他命名空间 为类型创建层次结构:

using System;

using System Data;

using System Configuration;

using System Web;

using System Web Security;

namespace vlink

{

namespace Agent

{

namespace CallBack

{

}

}

}

每个命名空间名都由它所在命名空间的名称组成 这些名称用句点分隔开 首先是最外层的命名空间 最后是它自己的短名 所以Agent命名空间的全名是vlink Agent CallBack类的全名是vlink Agent CallBack 注意不允许在另一个嵌套的命名空间中声明多部分的命名空间 命名空间与程序集无关 同一个程序集中可以有不同的命名空间 也可以在不同的程序集中定义同一个命名空间中的类型 using语句显然 命名空间相当长 键入起来很繁琐 用这种方式指定某个特定的类也是不必要的 如本章开头所述 C#允许简写类的全名 为此 要在文件的顶部列出类的命名空间 前面加上using关键字 在文件的其他地方 就可以使用其类型名称来引用命名空间中的类型了:

using System;

using vlink;

如前所述 所有的C#源代码都以语句using System;开头 这仅是因为Microsoft提供的许多有用的类都包含在System命名空间中 如果using指令引用的两个命名空间包含同名的类 就必须使用完整的名称(或者至少较长的名称) 确保编译器知道访问哪个类型 例如 类CallBack同时存在于Agent和vlink命名空间中 如果要在命名空间Agent中创建一个类Test 并在该类中实例化一个CallBack类 就需要指定使用哪个类

因为using语句在C#文件的开头 C和C++也把#include放在这里 所以从C++迁移到C#的程序员常把命名空间与C++风格的头文件相混淆 不要犯这种错误 using语句在这些文件之间并没有真正建立物理链接 C#也没有对应于C++头文件的部分 命名空间的别名using关键字的另一个用途是给类和命名空间指定别名 如果命名空间的名称非常长 又要在代码中使用多次 但不希望该命名空间的名称包含在using指令中(例如 避免类名冲突) 就可以给该命名空间指定一个别名 其语法如下:using alias = NamespaceName;

ASP NET中各命名空间及作用

命名空间描述

Microsoft CSharp????????支持C#语言编译和生成代码

System????????????????????包含了基础类 用于定义类型/数组/字符串/事件/事件处理程序/

异常?处理 /接口/数据类型转换/数学计算/应用程序环境管理等等.

System Coolections????????????包含了一组用于管理对象集合(例如列表/队列/数组/哈希表/字典等)的类??

System Data??????????????????  主要包括了组成ADO NET体系结构的类

System diagnostics?????????????????? 提供用于调试/跟踪 以及与系统进程/事件日志/性能计数器进行交互的类

System Drawing?????????????????? 提供访问GDI+基本图形功能(在System Drawing以下的命名空间 包括

System Drawing Drawing D和System Drawing Text等 提供了更高级和更特

殊的GDI+图形功能)的类

System IO????????????????????????????????????? 包含了用于读写数据流/文件和普通输入/输出(I/O)功能的类型和类

System Reflection??????????????????  包括提供类型检测和动态绑定对象功能的类和接口

System reflection Emit?????????????????生成动态程序集

System Text?????????????????????????????????????包含用于字符编码/将字符块转换为字节快/将字节块转换为字符块等功能的

对象

System Text RegularExpressions包含了提供访问.NET框架正则表达引擎的类

System Timer????????????????????????????????????? 提供了Timer组件

System Web?????????????????????????????????????  包含了用于实施浏览器/服务器通信和其他Web相关功能的类

System Web Services?????????????????? 包含了用于创建和消费Web服务的类

System Web UI????????????????????????????????????? 包含了用于创建Web页和控件的用户接口的类和接口

System XML???????????????????????????????????????????????提供了支持处理XML的类 lishixinzhi/Article/program/net/201311/13493

什么是命名空间? 命名空间有什么作用? 试举例说明

C++提供名字空间将相同的名字放在不同空间中来防止命名冲突;

大型应用程序有多人完成,各自为自己的模块命名,名字冲突是一种潜在的危机;比如甲在程序中定义了int a;乙也在程序中定义了int a;在最后就会出现命名冲突,此时就会用到命名空间了。

在c++中‘命名空间’是什么意思?‘std::’是什么意思?谢

举个例子吧,我们的名字,有很多时候会重名,比如张三.

世界上可能有几十几百个张三.

我们的世界里当然可以用身份证号码来分啦,但在没有身份证的时代怎么分呢?

有办法的,比如,可以在名字前面加上地方名,如

广东的张三

上海的张三

同样的道理,我们在编程时,不同的程序员可能都会喜欢用同样的名字来表示相同的东西,如,大家可能都会用dog来表示狗类.好了,现在有好几位程序员都写了dog类,可能各自的功能不同或相同.就好比好几家人都养了条狗一样.好了,在程序调用时,编译器傻了,它不知道该拉哪家的狗出来响应呀!

怎么办?哦,让我们在狗前面加上namespace(名字空间)以示区分,好了,于是程序中就有了

张三 的 狗

李四 的 狗

啰嗦了一大堆,该说回来了

std::

std表示是C++的标准命名空间,就是编译系统自带有的,按C++标准定义好了的。

:: 书写格式

比如,在使用输出std::cout时,如果它达不到我们想要的效果,我们也可以自己定义一个名字空间,

取名myspace,再在这个空间里写一个cout函数来实现.调用时,就成了myspace::cout.

什么是命名空间(namespace),请用通俗易懂的语言解答?

为了避免同名的函数和变量引起冲突,引入了命名空间的概念,通过使用namespace xxx,所使用函数或者变量是在该命名空间里定义的,这样就不会引起不必要的冲突了。

(责任编辑:IT教学网)

更多

相关编程综合文章

推荐编程综合文章