您好,登錄后才能下訂單哦!
今天就跟大家聊聊有關VB.NET擴展方法的概念是什么,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結了以下內容,希望大家根據這篇文章可以有所收獲。
VB.NET編程語言的出現,在開發領域中起了很大的作用。它從出現至今,已經發展了各種版本,而且每一版本的出現都會給我們帶來不一樣的體驗。下面就一起來看看VB.NET擴展方法在新版本中的功能吧。
Visual Basic 9.0支持新一代語言集成的查詢功能,支持在DLinq的數據對象或者XLinq的XML數據上實施關系型的查詢,這些查詢是利用DLinq或者XLinq相關對象上一組方法(或者叫算符)來實現的。而vb9的開發人員認為這套查詢方法也應該能用于現有的對象數據組織方式,比如IEnumerable和其他集合。因此,Visual Basic 9.0需要一種從外部給現有類型增加方法的功能,這就是VB.NET擴展方法。
VB.NET擴展方法其實是一種編譯器后臺翻譯的方法,原本是接受t類型參數的方法,可以用t類型成員的語法寫出。這個語法僅用于類庫設計者使用,不宜亂用,所以visual Basic 9.0不提供特別的語法支持,類庫設計者只需要把相應的Attribute置于聲明擴展方法的模塊與方法上即可。
< Extension()>Module MyExtensionModule MyExtension
< Extension()> _
Public Function Count()Function Count(Of T)([Me] As
IEnumerable(Of T))As IntegerFor Each Dim item In [Me]
Count += 1
Next
End Function
End Module
注意,我們把VB.NET擴展方法的***個參數命名為me,是為了提醒程序員,這個參數在擴展方法起作用之后,就如同實例方法me一樣,當然這不是必須的,只是一種推薦做法。
擴展方法要起作用,并不是沒有條件的,如果誰都擴展framework中的方法,就會亂成一鍋粥了。因此規定,需要用imports語句導入擴展方法所在的模塊,才能讓擴展方法起作用。
Imports MyExtionsion導入擴展方法之后,就可以使用該擴展方法了:
Dim arr = {1, 2, 3, 4, 5} Dim length = arr.Count '以上一句會被自動翻譯成 'Dim length = MyExtionsion.Count(arr)
提醒一句,VB.NET擴展方法只是語法糖,沒有必要的擴展***不要使用它。過多的擴展會導致語法清晰,但設計上糟糕的情況出現。請仔細考慮使用這個特性。
看完上述內容,你們對VB.NET擴展方法的概念是什么有進一步的了解嗎?如果還想了解更多知識或者相關內容,請關注億速云行業資訊頻道,感謝大家的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。