Forskjellen mellom Funksjoner og subrutiner i Visual Basic

Forskjellen mellom Funksjoner og subrutiner i Visual Basic


Hvis du har planer om å utvikle et Visual Basic-program, en av de første tingene du trenger å vite er forskjellen mellom funksjoner og subrutiner, også kjent som under prosedyrer. Du kan tenke på subrutiner og funksjoner som miniatyr programmer. I motsetning til variabler, gjør subrutiner og funksjoner ikke holde noen data; stedet de holder VB kode. Hvis du ønsker å returnere data, og deretter bruke en funksjon - Ellers bruker en subrutine. Du kan ringe funksjoner fra subrutiner og vice-versa.

Definisjon

En subrutine består av en serie av Visual Basic uttalelser, omgitt av "Sub" og "End Sub" uttalelser. En funksjon prosedyren er også sammensatt av en serie av Visual Basic uttalelser, men det må være omsluttet av "Function" og "End Function" uttalelser. All kjørbar kode må være inne både en subrutine og funksjon prosedyre. Begge kan defineres i moduler, klasser og strukturer.

Erklæring

Du erklærer en subrutine på en måte som ligner på hvordan du ville erklære en variabel, ved å angi parameternavn og datatype. Du kan angi parameteroverføring mekanisme som "ByVal" eller "ByRef." Hver parameter er behandlet som en lokal variabel til subrutinen, noe som betyr at levetiden for den parameteren er den samme som den for fremgangsmåten. I en funksjon, kan du deklarerer datatypen av verdien den returnerer for eksempel "Integer" eller "Double". Hvis du ikke angir "returntype," funksjonen vil returnere en "objekt" datatype.

retur av data

I VB, kan du passere et argument til en prosedyre (subrutine eller funksjon) av verdi eller ved henvisning ved å angi "ByVal" eller "ByRef" søkeord. Som standard en subrutine og funksjon behandle sine argumenter som i verdi, noe som betyr at prosedyren ikke kan endre innholdet i den variable delen i ringer koden. En funksjon returnerer en verdi ved å tilordne verdien til funksjonsnavnet, eller ta den med i "Return" statement. En subrutine normalt ikke returnerer en verdi, men du kan definere et argument som "ByRef" for å returnere en verdi som en parameter.

Eksempel

Følgende er et eksempel på en subrutine:

Sub tellOperator (ByVal oppgave As String)

Dim stamp As Date

stempel = TimeOfDay ()

MsgBox ( "Starte" & oppgave & "på" og CSTR (stempel))

End Sub

Følgende er et eksempel på en funksjon:

Funksjon myFunction (ByVal j As Integer) As Double

Return 3.87 * j

End Function