vb6 - que - procedimientos y funciones en visual basic
¿Cuál es la diferencia entre Sub y Función en VB6? (8)
- La sintaxis de las funciones será Function ... End function y para Sub será Sub ... End Sub.
- Las funciones pueden tener objetos o no, pero el sub no tiene objetos
- Las funciones son reutilizables cuando Sub no lo hace
- Las funciones pueden devolver valores pero sub dosen''t
- Las funciones pueden tener repositorio de objetos pero el sub no tiene
- La extensión de funciones es .qfl donde para sub es .vba
Estoy repasando un viejo código VB y me encuentro con definiciones de funciones como estas -
Private Function ExistingCustomer(Index As Integer, Customer As String) As Integer
Private Sub cmdCustomerList_Click()
¿Cual es la diferencia?
¿Cuál es la diferencia entre Sub y Función en VB6?
" sub " puede realizar alguna acción. "sub" no devuelve ningún valor.
Ejemplo:
Form_Load ()
" función " también puede realizar alguna acción pero también devuelve algún valor para apuntar desde donde se llamó. es decir, "Las funciones devuelven un valor, a menudo basado en una variable"
Ejemplo:
Val (), FormatPercentage ().
Ambos son secciones para escribir código, sin embargo, una función debe devolver un valor. Por ejemplo, si tiene un programa en el que se debe ejecutar un complicado procedimiento matemático varias veces, simplemente debe hacer una función y tener el complicado código matemático allí y cada vez que necesite hacer el cálculo, puede llamar a la función . Espero que esto ayude a no estar seguro si lo expliqué bien.
En la función podemos devolver valores como booleanos, cadenas y otros tipos de datos de datos.
pero el sub no devuelve nada. simplemente ejecuta el código y la instrucción que damos. Estos también son considerados como métodos
Sub también se usa en eventos de control y estos eventos tampoco devuelven ningún valor.
por ejemplo, el evento click de un botón de comando: Private sub cmd_click ()
end sub
La función devuelve valor, Sub no. Es así de simple.
Una función contiene datos y código. Pero una subrutina contiene solo código, pero no datos.
Una función también se puede usar en una expresión. Una subrutina no puede. Las funciones pueden mejorar la legibilidad de su código mejor que una subrutina.
Aquí hay un ejemplo de cómo una función puede aumentar la legibilidad:
If AccountIsLocked("JJones") then Msgbox("This account is locked")
esta función se definiría en algún lado
public function AccountIsLocked(UserId as string) as boolean
dim usr = uow.AccountRepository.UserInfo(UserId)
return usr.locked
end function
Aquí está el mismo ejemplo pero codificado con una subrutina:
CheckIfAccountLocked("JJones")
y en otro lugar este sub se define:
public sub CheckIfAccountLocked(UserId)
if uow.AccountRepository.UserInfo(UserId).locked then
msgbox("Account is locked")
end if
end sub
También tenga en cuenta que verificar el valor está separado de la acción, esto contribuye a la separación de funciones. La función se presta para la reutilización.
Con VB6 hay algunas reglas extrañas que rigen paréntesis. Si no hay parámetros para un sub, entonces los paréntesis no son necesarios (creo que Visual Studio podría eliminar el paréntesis). Una forma de evitar esto es agregar la palabra clave "Llamar" antes de su sub.
Call CheckIfAccountLocked()
vs
CheckIfAccountLocked
función en vb
- una función debe devolver algún valor / s
- Sintaxis: private function fun_name (argument / s (optional)) como return_type (integer, string ..) return value end function
- fun_name (argumentos (opcional)) es suficiente para llamar a la función
sub en vb
- un submarino no necesita devolver ningún valor / s
Sintaxis: private sub subname (argumento / s (opcional))
end sub
- sub_name (argumentos (opcional)) es suficiente para llamar a la función