C#面向对象--命名空间(乘风破浪的姐姐第三季)

网友投稿 291 2022-07-31

一、在C#中,使用命名空间(Namespace)可以帮助控制自定义类型的作用范围,同时对大量的类型进行组织;使用namespace关键字声明命名空间,命名空间可以嵌套使用:

1.命名空间默认即为public,没有任何访问限制,不能使用任何访问修饰符;

2.在命名空间中的定义的五种基本类型(类class、结构struct、接口interface、枚举enum和委托delegate),只能是public或internal的,默认为internal的;

3.每一种类型根据其命名空间的不同会拥有一个唯一名称,即完全限定名称(Fully Qualified Name),例如上面自定义类型MyClass的完全限定名称为MyNameSpace.MyNestedNameSpace.MyClass;

※完全限定名称才是CLR看到的实际类型名称;

二、使用using关键字引用指定的命名空间,这样可在当前代码范围内免去为每个类型指定命名空间的名称,通过.运算符分隔嵌套的命名空间:

using MyNameSpace.MyNestedNameSpace;

※此时,可以直接在代码中访问MyNameSpace.MyNestedNameSpace命名空间中的MyClass类:

MyClass myClass = new MyClass();

myClass.MyFunc();

三、使用using关键字还可以创建命名空间或类的别名(Alias Directive),从而在需要明确指定命名空间或类型的名称时简化代码:

1.命名空间别名:

using My = MyNameSpace.MyNestedNameSpace;

※此时,可以通过My.MyClass访问MyNameSpace.MyNestedNameSpace命名空间中的MyClass类:

My.MyClass myClass = new My.MyClass();

myClass.MyFunc();

※对于命名空间别名在使用时,更好的方式是使用::运算符代替.运算符,以此避免在使用时将其理解为类型并可以防止意外引入与别名同名的类型:My::MyClass()

2.类型别名:

using My = MyNameSpace.MyNestedNameSpace.MyClass;

※此时,可以直接通过别名My代替MyNameSpace.MyNestedNameSpace命名空间中的MyClass类:

My myClass = new My();

myClass.MyFunc();

3.全局命名空间限定符global关键字与::运算符一起使用时,始终引用的是顶级根命名空间(.Net)中的类型,例如:

global::System.Collections.Generic.List

如果您觉得阅读本文对您有帮助,请点一下“推荐”按钮,您的认可是我写作的最大动力!

出处:https://cnblogs.com/minotauros/

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:C# detect latest .net framework installed on PC(c罗)
下一篇:6. abp中的拦截器(6.21是什么星座)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~