成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

突破VB.NET命名空間兩大難關(guān)

開發(fā) 后端
本文主要解釋了VB.NET命名空間,對于避免名稱沖突,完全限定名的概念上都做了解釋和代碼的演示。看了一定會給你帶來幫助的。

知道什么是VB.NET命名空間嗎?對于命名組織在程序集中定義的對象你有深入的了解嗎?程序集可以包含多個VB.NET命名空間命名空間,而命名空間可以包含其他命名空間。命名空間避免了使用大的對象組(如類庫)時的多義性并簡化了引用。下面我們來看一個例子.

例如,.NET Framework 在 System.Windows.Forms 命名空間中定義 ListBox 類。以下代碼片段說明如何使用該類的完全限定名聲明變量:

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


一.避免名稱沖突

.NET Framework 命名空間解決了有時被稱為“命名空間污染”的問題,即在另一個庫中使用類似名稱妨礙了類庫的開發(fā)者。這些同現(xiàn)有組件的沖突有時被稱為“名稱沖突”。

例如,如果創(chuàng)建一個名為 ListBox 的新類,則在項目內(nèi)部不需任何限定即可使用它。但是,如果想要在同一項目中使用 .NET Framework ListBox 類,就必須使用完全限定的引用以使引用***。如果該引用不***,Visual Basic 會產(chǎn)生錯誤,指明該名稱不明確。下面的代碼示例說明如何聲明這些對象:

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

下圖說明了兩個命名空間層次結(jié)構(gòu),它們都包含名為 ListBox 的對象。

命名空間層次結(jié)構(gòu) 

 

默認(rèn)情況下,使用 Visual Basic 創(chuàng)建的每個可執(zhí)行文件都包含一個與項目同名的命名空間。例如,如果在名為 ListBoxProject 的項目內(nèi)定義一個對象,則可執(zhí)行文件 ListBoxProject.exe 將包含名為 ListBoxProject 的命名空間。

多個程序集可使用同一命名空間。Visual Basic 將它們視為單一的一組名稱。例如,可以在名為 Assemb1 的程序集中為名為 SomeNameSpace 的命名空間定義類,在名為 Assemb2 的程序集中為同一命名空間定義附加的類。

二.完全限定名

完全限定名是以在其中定義對象的命名空間的名稱為前綴的對象引用。如果創(chuàng)建對該類的引用(選擇“項目”菜單中的“添加引用”),然后在代碼中使用對象的完全限定名,就可以使用在其他項目中定義的對象。下面的代碼片段說明如何使用另一項目命名空間中的對象的完全限定名:

  1. Visual Basic  
  2. Dim LBC As New ListBoxProject.Form1.ListBox  

命名沖突,因為它們使編譯器能夠確定哪個對象正在被使用。然而,名稱本身可能變得冗長繁瑣。為避免這點,可以使用 Imports 語句來定義“別名”,別名是一個可用來替代完全限定名的縮寫名稱。例如,下面的代碼示例為兩個完全限定名創(chuàng)建別名,并且使用這些別名定義兩個對象。

  1. Visual Basic  
  2. Imports LBControl = System.Windows.Forms.ListBox  
  3. Imports MyListBox = ListBoxProject.Form1.ListBox  
  4. Visual Basic  
  5. Dim LBC As LBControl  
  6. Dim MyLB As MyListBox 

如果使用 Imports 語句而不用別名,可以不加限定地使用該命名空間中的所有名稱,只要它們對項目而言是***的即可。如果項目包含的命名空間的 Imports 語句含有同名項,則使用該名稱時必須完全限定它。例如,假設(shè)項目包含如下兩個 Imports 語句:

  1. Visual Basic  
  2. ' This namespace contains a class called Class1.  
  3. Imports MyProj1  
  4. ' This namespace also contains a class called Class1.  
  5. Imports MyProj2 

如果試圖在沒有完全限定的情況下使用 Class1,Visual Basic 將產(chǎn)生錯誤,指出名稱 Class1 不明確。

VB.NET命名空間級語句
在命名空間內(nèi),可以定義像模塊、接口、類、委托、枚舉、結(jié)構(gòu)以及其他命名空間這樣的項。無法在命名空間級別定義諸如屬性、過程、變量和事件等項目。必須在諸如模塊、結(jié)構(gòu)或類等容器內(nèi)聲明這些項目。

注意 
如果您定義的命名空間是嵌套層次結(jié)構(gòu),則該層次結(jié)構(gòu)中的代碼訪問其他同名命名空間中的類時,可能會被阻塞。例如,如果您在一個名為 SpecialSpace 的命名空間中定義了一個叫做 System 的命名空間,則 .NET Framework System 命名空間的成員將無法訪問,除非您用關(guān)鍵字 Global 對這些成員進(jìn)行完全限定。有關(guān)更多信息,請參見 Global。

【編輯推薦】

  1. 深入分析VB.NET條件語句中的兩類
  2. 全面討論VB.NET申明Windows API函數(shù)
  3. 剖析VB.NET平臺調(diào)用是如何執(zhí)行操作
  4. 分享個人總結(jié)VB.NET多線程
  5. 三類十二種VB.NET數(shù)據(jù)類型全面介紹
責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2010-01-15 10:47:15

VB.NET命名空間

2009-10-20 15:05:04

VB.NET Word

2009-11-10 15:36:24

VB.NET命名約定

2009-10-27 14:49:11

VB.NET命名規(guī)范

2009-10-13 14:29:49

VB.NET名字空間

2009-10-30 13:31:06

VB.NET名空間

2010-01-08 16:19:00

VB.NET類型單位命

2009-11-04 13:50:55

VB.NET名字空間

2010-01-12 15:04:01

VB.NET異常處理

2009-10-23 14:58:05

VB.NET傳輸表空間

2009-10-21 14:36:03

VB.NET批量重命名

2009-10-27 14:32:45

VB.NET類型級命名

2009-06-24 09:22:34

2009-10-29 14:02:24

VB和VB.NET比較

2009-10-20 14:21:55

VB.NET fnSi

2009-10-14 12:51:41

VB.NET Data

2011-06-17 11:05:22

VB.NET

2009-06-24 15:45:32

VB.NET

2009-11-02 17:12:01

VB和VB.NET

2009-11-03 13:02:28

VB.NET Wind
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲三区在线观看 | 91伊人 | 91视频国产一区 | 午夜专区 | 另类一区 | 精品国产精品国产偷麻豆 | 日韩第一页 | 亚洲在线电影 | 国产亚洲成av人片在线观看桃 | 日日噜噜噜夜夜爽爽狠狠视频, | 国产一区二区三区在线 | 黄色三级在线播放 | 欧美人妖网站 | 国产www成人 | 欧美亚洲综合久久 | 国产欧美精品一区二区色综合朱莉 | 成人在线精品视频 | 欧美vide| 国产精品99久久久久久动医院 | 精品国产乱码久久久久久丨区2区 | 国产欧美日韩综合精品一区二区 | wwww.xxxx免费| 天天操天天玩 | 午夜电影网址 | 国产三级 | 精品国产亚洲一区二区三区大结局 | 黄色一级片aaa | 国产ts人妖系列高潮 | 精品国产一区二区三区性色av | 中文在线观看视频 | 国产乱肥老妇国产一区二 | 91在线网站| 国产成人一区在线 | 亚洲一区中文字幕 | 欧美精品v国产精品v日韩精品 | 免费视频久久 | 91伦理片| 国产欧美精品区一区二区三区 | 亚洲大片在线观看 | 国产精品久久久乱弄 | 精品久久久久久亚洲综合网站 |