2010-10-29 147 views
12

我們有這樣的方法調用:什麼意思?=在vb.net中的意思?

SendAck(AppData:=AppData, Status:=Status, StatusMessage:=StatusMessage, IsApplication:=IsApplication) 

這裏的定義是:

Private Sub SendAck(ByVal AppData As XDocument, ByVal Status As Boolean, ByVal StatusMessage As String, ByVal IsApplication As Boolean) 

爲什麼調用具有與參數 「:=」。我只是好奇。

回答

14

VB.Net中的「:=」用於按名稱傳遞函數參數。默認是按位置。它允許以任何順序調用參數,並根據名稱匹配確定定位。

例如

Sub Example(ByVal param1 as Integer, ByVal param2 As Integer) 
    Console.WriteLine("{0} - {1}", param1, param2) 
End Sub 

Example(param2:=42, param1:=1) ' Prints "1 - 42" 
Example(42, 1)     ' Prints "42 - 1" 
+0

Gotcha。出於好奇,你想什麼時候這樣做?如果你這樣做,跳過某些參數,爲什麼你不讓它們可選? – Scott 2010-10-29 20:16:21

+1

@Scott,我最喜歡的原因是使布爾參數更具可讀性。 'GetFiles(true)'比'GetFiles(recurseIntoSubDirectories:= true)'可讀性好得多' – JaredPar 2010-10-29 20:17:44

+0

非常有趣......謝謝! – Scott 2010-10-29 20:18:34

5

即語法使用命名參數;指定在:=之前設置的參數的名稱,然後是後面的值。這樣做可以使您跳過參數或按不同的順序執行它們。