命名空间可以让名称相同的对象区分开,进行使用。
比如2021级3班的李华、2021级8班的李华,此处的2021级3班和2021级8班就是不同的命名空间。
下面是命名空间使用的各情况说明和举例:
1.namespace相同时的调用方法
当“ namespace 名称 ”中的名称相同时,各窗口或者各类可直接使用“ 实例化对象名. 调用方法名 ”或者“ 实例化对象名. 调用属性名 ”进行调用。
图1为我定义的UserControlBase1类,且定义了一个public的布尔类型的变量_isRadius。
图1
图2为在Form1窗口进行调用,可以看到二者的命名空间相同,均为“ 基类控件 ”。
则可在Form1中实例化一个UserControlBase1的对象u1,可直接通过u1._isRadius对UserControlBase1中的变量或方法进行调用。
图2
2.namespace不同时,在另一个窗口/类中调用
可以采用两种方法解决
I. 添加“ using 空间名 ”引用集,此时该空间里面的属性可用其名称直接进行调用。
如图3,该命名空间为“ _49_DBHelper ”,且定义了一个OpenConn打开数据库的方法。
图3
II. 使用“ 空间名.要调用的名称 ”进行调用。
如图4,由于命名空间不一样,则使用“ using 要调用的空间名 ”,此时可直接在Form1窗体通过“ 要调用的类名. 要调用的方法名 ”进行调用,即图4所示。
图4
3.namespace可嵌套
命名空间可进行嵌套,此时调用里层的命名空间需按照“ using 最外层空间名.里层空间名 ”,进行调用。如图5、图6所示。
以本文开头的例子作示范,定义了一个“_2021级 ”的命名空间,在里面嵌套了“_3班 ”和“_8班 ”,二者的优先级相等。
图5
要对3班或8班里的方法或变量进行使用,则需要在调用窗口按“ using 最外层空间名.里层空间名 ”进行声明,如图6所示。
图6