[Duvida] Functions e Sub Routines em VB2005

Ruivo

Power Member
Boas a todos,
eu ando com um grande problema no mundo da programação que me já está a comer a cabeça toda.
Eu gostava de saber a diferença entre Sub routine e Function.
Já estive a ler alguns guias de Visual Basic, e fiquei a saber que Sub routine servem para fazer tudo sempre a direito e Function para retornar valores. Mas n estou a perceber que Valores e para que serve isso :S
Eu ja usei Functions noutra linguagem de programaçao e estava convencido que Function era o mesmo que Sub routines em Visual Basic.
Sera que me podem explicar + ou - isto? Eu aprendi a programar na escola, mas o prof so me ensinou o básico do básico, nada de usar modulos, classes, etc.

Desde já agradeço qualquer ajuda..

cumpz...
Hruivo.
 
É tal e qual o que tu dizes.

Um sub é um método que não retorna parâmetros (apesar que os podes retornar se os declarares byref).

Uma function, é uma função que pode retornar parâmetros pela função (do género: Return "my value").

É um conceito simples.

O mesmo em C# aplica-se a funções "void"(igual ao sub) e com um "return type" definido (igual à function).
 
Ahh! ja percebi lol
Estava agr a olhar para umas classes e ja sei o que são os parametros. E a lógica para tal.
Agr sim, já sei ate como fazer o meu projecto :D parece que já vejo uma luz ao fundo do tunel :)

Mas não estou a conseguir por a dar como deve ser:

Código:
  public sub initfog()
         Fog(False)
    End Sub

    Public Function Fog(ByVal var As Boolean) As Boolean
        Atmos.Fog_Enable(True)
        Atmos.Fog_SetColor(0.5, 0.5, 0.5)
        blablabla
    End Function

Mas quer meta Fog(true) como fog(false) ele faz aparecer o Fog.
O que estou a fazer mal?

Fica bem ;)
Ruivo...
 
Última edição:
Ja resolvi.. ando mxm lento :S

public sub initfog()
Fog(False)
End Sub

Public Function Fog(ByVal var As Boolean) As Boolean
Atmos.Fog_Enable(var)
Atmos.Fog_SetColor(0.5, 0.5, 0.5)
blablabla
End Function
Obrigado pela ajuda ;)

Fica bem
 
As functions são feitas para retornar valores. Nesse teu exemplo, isso podia perfeitamente ser um sub...

Vê aqui este exemplo simples:
Código:
'mostrar o resultado de 3 * 2 sem usar uma function:

Dim i As Integer
i = 3 * 2
MsgBox(i)
Código:
'mostrar o resultado de 3 * 2 usando uma function:

Dim i As Integer
i = tres_vezes_dois()
MsgBox(i)

Function tres_vezes_dois() As Integer
Return 3 * 2
End Function
Código:
'mostrar o resultado de 3 * 2 usando uma function com parâmetros:

Dim i As Integer
i = multiplicar(3, 2)
MsgBox(i)

Function multiplicar(ByVal x As Integer, ByVal y As Integer) As Integer
Return x * y
End Function
 
hmm, estou a ver.
Muito obrigado, muito bons os exemplos.
Agr fiquei completamente a perceber o que eram as functions e onde as usar.
 
Última edição:
Back
Topo