我會通過一些舊的VB代碼,我碰上函數定義像這樣的 -VB6中Sub和Function有什麼區別?
Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer
Private Sub cmdCustomerList_Click()
有什麼區別?
我會通過一些舊的VB代碼,我碰上函數定義像這樣的 -VB6中Sub和Function有什麼區別?
Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer
Private Sub cmdCustomerList_Click()
有什麼區別?
在VB功能
子在vb
語法: 私有子sub_name(參數/ S(可選))
末次
在函數中,我們可以將值作爲布爾值,字符串和其他數據數據類型返回。
但子不返回任何東西。 它只是執行我們給出的代碼和指令。這些也被視爲方法
Sub也用於控件的事件,這些事件也不會返回任何值。
例如一個命令按鈕的單擊事件: 私人子cmd_click()
端子
的函數也可以在表達式中使用。子程序不能。 函數可以比子例程更好地提高代碼的可讀性。
這裏有一個如何的功能可以增加可讀性的例子:
If AccountIsLocked("JJones") then Msgbox("This account is locked")
此功能會在某處定義
public function AccountIsLocked(UserId as string) as boolean
dim usr = uow.AccountRepository.UserInfo(UserId)
return usr.locked
end function
這是同樣的例子,但有一個子程序編碼:
CheckIfAccountLocked("JJones")
和其他地方該子被定義:
public sub CheckIfAccountLocked(UserId)
if uow.AccountRepository.UserInfo(UserId).locked then
msgbox("Account is locked")
end if
end sub
另請注意,檢查值是否與操作分開 - 這有助於職責分離。該功能將提供重用性。
使用VB6有理事括號一些奇怪的規則。如果不存在子參數,則不需要括號(我認爲Visual Studio可能會刪除括號)。解決這個問題的一個方法就是在你的sub之前添加關鍵字「Call」。
Call CheckIfAccountLocked()
VS
CheckIfAccountLocked
這裏的最佳答案 – Hydro 2016-09-26 01:14:57
他們都是部分編寫代碼然而一個函數必須返回一個值。例如,如果你有其中一個複雜的數學程序需要執行許多次,你會簡單地做一個功能,並有複雜的數學代碼在那裏,任何時候你需要做的的計算,你只需調用功能的程序。希望這有助於我不確定我是否解釋得好。
是什麼在VB6 Sub和功能之間的區別?
「子」 可以執行一些動作。 「sub」不返回任何值。
實施例:
的Form_Load()
「功能」還可以執行一些動作,但它也返回一些值以指向從它被調用。 即 「函數返回一個值,通常基於一個變量」
實施例:
纈氨酸(),FormatPercentage()。
一個函數保存的數據和代碼。但是子程序僅包含代碼,但不包含數據。
在Excel中唯一的「替補」是可用於分配給形狀分配宏MSGBOX。 – SAm 2015-01-08 12:15:37