程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB.NET >> Visual Basic 9不完全入門之語法加強

Visual Basic 9不完全入門之語法加強

編輯:VB.NET

Visual Basic 9不完全入門之語法加強。本站提示廣大學習愛好者:(Visual Basic 9不完全入門之語法加強)文章只能為提供參考,不一定能成為您想要的結果。以下是Visual Basic 9不完全入門之語法加強正文


為什麼加強?

由於 .Net Framework 3.5 中許多修正與擴展觸及 .Net Framework 2.0 中的已有類(如 LINQ),但又要保證向下兼容,所以微軟的設計團隊對現有 Visual Basic 語法作出了一些加強。與語法糖一樣,它們也是編譯時由編譯器擔任完成的。

加強了什麼?

·擴展辦法

·松弛委托

·怎樣運用它?

實踐上,這一組功用次要面對的是類庫設計人員。

1. 擴展辦法

擴展辦法用於對已有 CLR 類庫或是其他類庫中的辦法停止擴展,現實上也是“語法糖”的一種,只不過更大些,更重要些。在 .Net Framework 3.5 中,為了對已有 CLR 中的類型停止拓展,使其可以運用 LINQ 的查詢方式,多處運用了這種擴展。本質上,擴展辦法是編譯時將調用的函數指向詳細的擴展辦法,從而到達“擴展”的目的。

擴展辦法必需為 Shared(C# 中的 Static),且必需位於 Module(C# 中的 Static Class)中。

示例代碼

Imports System.Runtime.CompilerServices
Public Module SampleModule Sample
<Extension()> _
Public Function MySum()Function MySum(ByVal [Me] As IEnumerable(Of Integer)) As Integer
 Dim I As Integer
 For Each Obj As Integer In [Me]
  I += Obj
 Next
 Return I
End Function
End Module

擴展辦法僅作用於該 Namespace 中(否則不都亂套了),或用 Imports 引入。執行 LINQ 需求 Imports System.LINQ 命名空間也是一樣的道理。

2. 松弛委托

Visual Basic 9 之前的版本中,綁定到委托標識符的辦法必需完全婚配委托類型的簽名。這帶來了許多不用要的費事,比方在為 Thread 綁定辦法時弱類型帶來的苦楚。

而在 Visual Basic 9 中,委托的綁定和定義將允許寬松的類型婚配,只需辦法中參數類型可以隱式轉換到目的簽名。這裡運用一個典型的范例,創立一個 New Thread。按裝配腦袋的說法,松弛委托可以更松些,把 SampleSub 中的參數一並去掉,照舊可以編譯完成...

示例代碼

'在 Visual Basic 8 中,你不能夠將這個 Sub 綁定到 ThreadStart 上,但在 VB9 中,一切都成為能夠
Public Sub SampleSub()Sub SampleSub(Args As String)
End Sub
'一切都是那麼的復雜!
Dim Thread As New Thread(AddressOf SampleSub)
Thread.Start()

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved