命名空间C#中Namespace命名空间的作用

命名空间  时间:2021-01-24  阅读:()

请问C#中命名空间的具体内容是指什么呢?其有什么作用啊?

C#中的类是利用命名空间组织起来的。

命名空间提供了一种从逻辑上组织类的方式,防止命名冲突。

命名空间声明 用namespace 关键字用于声明一个命名空间。

此命名空间范围允许您组织代码并为您提供了创建全局唯一类型的方法。

namespace name { 类型定义 } 其中:在命名空间中,可以声明类、接口、结构、枚举、委托 命名空间。

如果未显式声明命名空间,则会创建默认命名空间。

该默认的命名空间(有时称为全局命名空间)。

全局命名空间中的任何标识符都可用于命名的命名空间中。

命名空间声明可以作为顶级声明出现在编译单元中,当命名空间声明作为顶级声明出现在编译单元中时,该命名空间成为全局命名空间的一个成员。

命名空间声明出现在另一个命名空间声明内时,该内部命名空间就成为包含着它的外部命名空间的一个成员。

无论是何种情况,一个命名空间的名称在它所属的命名空间内必须是唯一的。

命名空间隐式地为 public,而且在命名空间的声明中不能包含任何访问修饰符。

嵌套的命名空间 命名空间声明中声明命名空间,各命名空间用”.”分隔。

例如: namespace N1.N2 { class A {} class B {} } 在语义上等效于 namespace N1 { namespace N2 { class A {} class B {} } } 引用类 引用一个类可以用完全限定名来限定引用类(类名前加上命名空间名),以防止命名冲突。

using 指令来导入其他命名空间和类型的名称,直接地而不是通过限定名来引用它们。

Using指令 using 别名指令为一个命名空间或类型启用一个别名。

using 命名空间指令用于导入一个命名空间的类型成员。

(1) using 命名空间指令将一个命名空间中所包含的类型导入到编译单元或命名空间体中,从而可以直接使用这些被导入的类型的标识符而不必加上它们的限定名。

如: namespace N1.N2 { class A {} } namespace N3 { using N1.N2; class B { public static void Main() { A a=new A(); } } } 上面的示例中,在 N3 命名空间中N1.N2 的类型成员是直接可用的,不需要完全限定名. (2)using 命名空间指令导入包含在给定命名空间中的类型,但要注意,它不导入嵌套的命名空间。

示例: namespace N1.N2 { class A {} } namespace N3 { using N1; class B { public static void Main() { A a=new A(); //错误,N1.N2命名空间中的类型没有导入到命名空间N3中 } } } (3)using 命名空间指令导入的名称会被编译单元或命名空间体中具有相同名称的成员所隐藏。

例如: namespace N1.N2 { class A {} class B {} } namespace N3 { using N1.N2; class A {}//N3.A } 在 N3 命名空间中的A类与N1.N2命名空间中的A类名称相同,则N1.N2.A被N3.A隐藏,A 引用 N3.A 而不是 N1.N2.A。

(4)同一编译单元或命名空间体中的 using 命名空间指令导入多个命名空间时,如果它们所包含的类型中有重名的,则直接引用该名称就被认为是不明确的。

示例: namespace N1 { class A {} } namespace N2 { class A {} } namespace N3 { using N1; using N2; class B { public static void Main() { A a=new A()// 错误A类明确,要使用完全限定名 } } } N1 和 N2 都包含一个成员 A,而由于 N3 将两者都导入,所以在 N3 中引用 A 会导致一个编译时错误名称冲突. using 别名指令用于为一个命名空间或类型指定一个别名。

using 标识符 = 命名空间或类型名称 ; 例如: namespace N1.N2 { class A {} } namespace N3 { using A = N1.N2.A; class B: A {} } 上面的示例中,在 N3 命名空间中,A 是 N1.N2.A 的别名,因此类 N3.B 从类 N1.N2.A 派生。

通过为 N1.N2 创建别名 R 然后引用 R.A 可以得到同样的效果: namespace N3 { using R = N1.N2; class B: R.A {} } using 别名指令中的别名在直接包含该 using 别名指令的编译单元或命名空间的声明空间内必须是唯一的。

例如: namespace N3 { class A {} } namespace N3 { using A = N1.N2.A; // 错误,命名冲突 } 上例中,N3 已包含了成员 A,因此 using 别名指令使用 A 作标识符会导致一个编译时错误。

C++ 中的命名空间和类有什么区别?

展开全部 因为在C++里面没有 package这一个术语,有时可能会遇到两个类命名相同,为了避免名字冲突,c++引入了命名空间

程序集名称与默认命名空间的区别?

命名空间就相当于windows中的一个文件夹,只是这个文件夹中放的不是文件,而是类 在vs2005中创建一个项目时,会指定一个名称,也就是程序集名称,而此时会将命名空间默认设置为这个名称。

也就是说,刚开始程序集的名称就是命名空间的名称,但是你却可以修改 namespace abc { ... } 如上,可以修改abc为tom,哪么命名空间就是tom了 程序集就是一个项目,多个项目构成一个解决方案

use namespace std怎么用啊?

以前都是写include "iostream.h",这样,现在标准写法是 include <iostream> using namespace std; 这样。

具体你可以百度一下using namespace std,看百度百科里的说明

namespace用法

在一个头文件中写: namespace 命名空间名称 { 你的变量; } 然后在你需要使用这个变量的cpp文件中包含该头文件。

C#中Namespace命名空间的作用

相同名称的类,有时候就需要冠以不同的命名空间才能正确调用到正确的类。

HyperVMart:加拿大vps,2核/3G/25G NVMe/G口不限流量/季付$10.97,免费Windows系统

hypervmart怎么样?hypervmart是一家成立了很多年的英国主机商家,上一次分享他家还是在2年前,商家销售虚拟主机、独立服务器和VPS,VPS采用Hyper-V虚拟架构,这一点从他家的域名上也可以看出来。目前商家针对VPS有一个75折的优惠,而且VPS显示的地区为加拿大,但是商家提供的测速地址为荷兰和英国,他家的优势就是给到G口不限流量,硬盘为NVMe固态硬盘,这个配置用来跑跑数据非常...

Cloudxtiny:£1.5/月,KVM-512MB/100GB/英国机房

Cloudxtiny是一家来自英国的主机商,提供VPS和独立服务器租用,在英国肯特自营数据中心,自己的硬件和网络(AS207059)。商家VPS主机基于KVM架构,开设在英国肯特机房,为了庆祝2021年欧洲杯决赛英格兰对意大利,商家为全场VPS主机提供50%的折扣直到7月31日,优惠后最低套餐每月1.5英镑起。我们对这场比赛有点偏见,但希望这是一场史诗般的决赛!下面列出几款主机套餐配置信息。CPU...

HostYun(25元)俄罗斯CN2广播IP地址

从介绍看啊,新增的HostYun 俄罗斯机房采用的是双向CN2线路,其他的像香港和日本机房,均为国内直连线路,访问质量不错。HostYun商家通用九折优惠码:HostYun内存CPUSSD流量带宽价格(原价)购买地址1G1核10G300G/月200M28元/月购买链接1G1核10G500G/月200M38元/月购买链接1G1核20G900G/月200M68元/月购买链接2G1核30G1500G/月...

命名空间为你推荐
金山杀毒怎么样金山杀毒怎么样?伪静态什么是伪静态照片转手绘照片弄成手绘一样的那个软件到底叫什么,能不能告诉啊?ps抠图技巧photoshop最基本的抠图方法和技巧!童之磊华硕的四核平板电脑,怎么样?腾讯文章怎样才能在手机腾讯网上发表文章?腾讯文章怎么在手机腾讯网发文章开机滚动条谁会调开机的滚动条人人逛街过节了,这儿可真热闹写一段话idc前线永恒之塔内侧 删档吗 ?
域名空间购买 三级域名网站 互联网域名管理办法 softlayer 域名优惠码 网站监控 香港新世界电讯 dropbox网盘 本网站服务器在美国 789电视 服务器合租 免费申请个人网站 个人免费主页 国外视频网站有哪些 免费ftp 阿里云免费邮箱 主机管理系统 东莞主机托管 日本代理ip 德讯 更多