文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

什么是VB.NET命名空间

2023-06-17 20:50

关注

这篇文章主要为大家展示了“什么是VB.NET命名空间”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“什么是VB.NET命名空间”这篇文章吧。

对于命名组织在程序集中定义的对象你有深入的了解吗?程序集可以包含多个VB.NET命名空间命名空间,而命名空间可以包含其他命名空间。命名空间避免了使用大的对象组(如类库)时的多义性并简化了引用。下面我们来看一个例子.

例如,.NET Framework 在 System.Windows.Forms 命名空间中定义 ListBox 类。以下代码片段说明如何使用该类的完全限定名声明变量:

Visual Basic  Dim LBox As System.Windows.Forms.ListBox


一.避免名称冲突

.NET Framework 命名空间解决了有时被称为“命名空间污染”的问题,即在另一个库中使用类似名称妨碍了类库的开发者。这些同现有组件的冲突有时被称为“名称冲突”。

例如,如果创建一个名为 ListBox 的新类,则在项目内部不需任何限定即可使用它。但是,如果想要在同一项目中使用 .NET Framework ListBox 类,就必须使用完全限定的引用以使引用***。如果该引用不***,Visual Basic 会产生错误,指明该名称不明确。下面的代码示例说明如何声明这些对象:

Visual Basic  ' Define a new object based on your ListBox class.  Dim LBC As New ListBox  ' Define a new Windows.Forms ListBox control.  Dim MyLB As New System.Windows.Forms.ListBox

下图说明了两个命名空间层次结构,它们都包含名为 ListBox 的对象。

什么是VB.NET命名空间

默认情况下,使用 Visual Basic 创建的每个可执行文件都包含一个与项目同名的命名空间。例如,如果在名为 ListBoxProject 的项目内定义一个对象,则可执行文件 ListBoxProject.exe 将包含名为 ListBoxProject 的命名空间。

多个程序集可使用同一命名空间。Visual Basic 将它们视为单一的一组名称。例如,可以在名为 Assemb1 的程序集中为名为 SomeNameSpace 的命名空间定义类,在名为 Assemb2 的程序集中为同一命名空间定义附加的类。

二.完全限定名

完全限定名是以在其中定义对象的命名空间的名称为前缀的对象引用。如果创建对该类的引用(选择“项目”菜单中的“添加引用”),然后在代码中使用对象的完全限定名,就可以使用在其他项目中定义的对象。下面的代码片段说明如何使用另一项目命名空间中的对象的完全限定名:

Visual Basic  Dim LBC As New ListBoxProject.Form1.ListBox

命名冲突,因为它们使编译器能够确定哪个对象正在被使用。然而,名称本身可能变得冗长繁琐。为避免这点,可以使用 Imports 语句来定义“别名”,别名是一个可用来替代完全限定名的缩写名称。例如,下面的代码示例为两个完全限定名创建别名,并且使用这些别名定义两个对象。

Visual Basic  Imports LBControl = System.Windows.Forms.ListBox  Imports MyListBox = ListBoxProject.Form1.ListBox  Visual Basic  Dim LBC As LBControl  Dim MyLB As MyListBox

如果使用 Imports 语句而不用别名,可以不加限定地使用该命名空间中的所有名称,只要它们对项目而言是***的即可。如果项目包含的命名空间的 Imports 语句含有同名项,则使用该名称时必须完全限定它。例如,假设项目包含如下两个 Imports 语句:

Visual Basic  ' This namespace contains a class called Class1.  Imports MyProj1  ' This namespace also contains a class called Class1.  Imports MyProj2

如果试图在没有完全限定的情况下使用 Class1,Visual Basic 将产生错误,指出名称 Class1 不明确。

VB.NET命名空间级语句
在命名空间内,可以定义像模块、接口、类、委托、枚举、结构以及其他命名空间这样的项。无法在命名空间级别定义诸如属性、过程、变量和事件等项目。必须在诸如模块、结构或类等容器内声明这些项目。

注意 
如果您定义的命名空间是嵌套层次结构,则该层次结构中的代码访问其他同名命名空间中的类时,可能会被阻塞。例如,如果您在一个名为 SpecialSpace 的命名空间中定义了一个叫做 System 的命名空间,则 .NET Framework System 命名空间的成员将无法访问,除非您用关键字 Global 对这些成员进行完全限定。

以上是“什么是VB.NET命名空间”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网行业资讯频道!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯