我正在浏览一些旧的 VB 代码,我遇到了像这样的函数定义 -
Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer
Private Sub cmdCustomerList_Click()
有什么不同?
我正在浏览一些旧的 VB 代码,我遇到了像这样的函数定义 -
Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer
Private Sub cmdCustomerList_Click()
有什么不同?
函数返回值,Sub 没有。就是这么简单。
函数也可以在表达式中使用。子程序不能。函数可以比子例程更好地提高代码的可读性。
这是一个函数如何提高可读性的示例:
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,有一些奇怪的规则来管理括号。如果 sub 没有参数,则不需要括号(我认为 Visual Studio 可能会删除括号)。解决此问题的一种方法是在您的子之前添加关键字“呼叫”。
Call CheckIfAccountLocked()
对比
CheckIfAccountLocked
在函数中,我们可以将值返回为布尔值、字符串和其他数据数据类型。
但 sub 不返回任何东西。它只是执行我们给出的代码和指令。这些也被视为方法
Sub 也用于控件的事件,这些事件也不返回任何值。
例如命令按钮的点击事件: Private sub cmd_click()
结束子
它们都是编写代码的部分,但是函数必须返回一个值。例如,如果您有一个程序需要多次执行复杂的数学过程,您只需创建一个函数并在其中包含复杂的数学代码,并且任何时候您需要进行计算,您都可以调用该函数. 希望这有助于不确定我是否解释得很好。
VB6中的Sub和Function有什么区别?
“ sub ”可以执行一些动作。“sub”不返回任何值。
例子:
Form_Load()
“ function ”也可以执行一些操作,但它也会返回一些值到调用它的点。也就是说,“函数返回一个值,通常基于一个变量”
例子:
值(),格式百分比()。
VB中的函数
vb中的子
语法 : private sub sub_name(argument/s(optional))
结束子
函数保存数据和代码。但是子程序只包含代码,而不包含数据。