Sub和Function在VB6中有什么区别?
我正在经历一些旧的VB代码,我遇到这样的函数定义 –
Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer Private Sub cmdCustomerList_Click()
有什么不同?
函数返回值,Sub不。 就这么简单。
一个函数也可以用在expression式中。 子程序不能。 函数可以比子程序更好地提高代码的可读性。
下面是一个函数如何提高可读性的例子:
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有一些奇怪的规则来pipe理括号。 如果没有参数到一个子然后括号是不需要的(我想Visual Studio可能会删除括号)。 解决这个问题的方法之一就是在你的子版本之前添加关键字“Call”。
Call CheckIfAccountLocked()
VS
CheckIfAccountLocked
在函数中,我们可以返回值为布尔值,string和其他数据数据types。
但sub不返回任何东西。 它只是执行我们给的代码和指令。 这些也被视为方法
Sub也用于控件的事件,这些事件也不会返回任何值。
例如命令button的单击事件:Private sub cmd_click()
结束小组
它们都是编写代码的部分,但函数必须返回一个值。 例如,如果你有一个程序,其中一个复杂的math过程需要执行多次,你只需要一个函数,并有复杂的math代码在那里,任何时候你需要做计算,你可以调用函数。 希望这个帮助不确定我是否解释得好。
Sub和Function在VB6中有什么区别?
“ 子 ”可以执行一些操作。 “sub”没有返回任何值。
例:
的Form_Load()
“ 函数 ”也可以执行一些操作,但是它也返回一些值,从中调用它。 即“函数返回一个值,通常基于一个variables”
例:
Val(),FormatPercentage()。
在vb中的function
- 一个函数必须返回一些值/ s
- 语法:private function fun_name(argument / s(optional))as return_type(integer,string ..)返回值结束函数
- fun_name(arguments(可选))对于函数调用来说已经足够了
sub in vb
- 一个子不需要返回任何值
-
语法:private sub sub_name(argument / s(optional))
结束小组
- sub_name(arguments(可选))对于函数调用是足够的
一个函数保存数据和代码。 但是一个子程序只包含代码,而不包含数据。
- 函数的语法将是Function … End函数和Sub将Sub … End Sub。
- 函数可能有也可能没有对象,但是子没有对象
- Sub没有的function是可重用的
- 函数可以返回值,但不能
- 函数可能有对象存储库,但子没有
- 扩展function是.qfl其中的子.vba