Я просматриваю какой-то старый код 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 существуют некоторые нечетные правила, регулирующие скобки. Если параметров нет, то скобки не нужны (я думаю, Visual Studio может удалить скобки). Один из способов заключается в том, чтобы добавить ключевое слово "Вызов" перед вашим юзером.
Call CheckIfAccountLocked()
против
CheckIfAccountLocked
В функции мы можем возвращать значения в виде логических, строковых и других типов данных данных.
но sub ничего не возвращает. он просто выполняет код и инструкцию, которые мы даем. Они также рассматриваются как методы
Sub также используется в контрольных событиях, и эти события также не возвращают никакого значения.
например, событие щелчка командной кнопки: Частный sub cmd_click()
end sub
Это обе секции для записи кода, однако функция должна возвращать значение. Например, если у вас была программа, в которой сложная математическая процедура должна выполняться несколько раз, вы просто выполняли бы функцию и имели бы сложный математический код там, и в любое время, когда вам нужно сделать расчет, вы можете просто вызвать функцию, Надеюсь, это не помогло, если бы я объяснил это хорошо.
В чем разница между Sub и Function в VB6?
" sub" может выполнять некоторые действия. "sub" не возвращает значение.
Пример:
Form_Load()
" функция" также может выполнять некоторые действия, но также возвращает некоторое значение в точку, из которой он был вызван. то есть "Функции возвращают значение, часто основанное на переменной"
Пример:
Val(), FormatPercentage().
в vb
sub в vb
Синтаксис: private sub sub_name (аргумент/с (необязательно))
end sub
Функция содержит данные и код. Но подпрограмма содержит только код, но не данные.