C#面向对象--命名空间

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

namespace MyNameSpace
{
    namespace MyNestedNameSpace
    {
        class MyClass
        {
            public void MyFunc()
            {
                //do...
            }
        }
    }
}

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

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

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

  ※彻底限定名称才是CLR看到的实际类型名称;get

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

using MyNameSpace.MyNestedNameSpace;

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

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

  3、使用using关键字还能够建立命名空间或类的别名(Alias Directive),从而在须要明确指定命名空间或类型的名称时简化代码:io

  1.命名空间别名:class

using My = MyNameSpace.MyNestedNameSpace;

  ※此时,能够经过My.MyClass访问MyNameSpace.MyNestedNameSpace命名空间中的MyClass类:List

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<int>

 


若是您以为阅读本文对您有帮助,请点一下“推荐”按钮,您的承认是我写做的最大动力!

做者:Minotauros
出处:https://www.cnblogs.com/minotauros/

本文版权归做者和博客园共有,欢迎转载,但未经做者赞成必须保留此段声明,且在文章页面明显位置给出原文链接,不然保留追究法律责任的权利。

相关文章
相关标签/搜索