Vain Skrevet 11. oktober 2004 Del Skrevet 11. oktober 2004 (endret) Hva er forskjellen mellom function og procedure? Hva skal de brukes til? Er det noen fordeler og ulemper med dem? Endret 11. oktober 2004 av 86Fredrik Lenke til kommentar
Rescudo Skrevet 11. oktober 2004 Del Skrevet 11. oktober 2004 Den eneste forskjellen jeg har lagt merke til er at function returnerer en verdi, mens en procedure(sub) ikke gjør det. Lenke til kommentar
aadnk Skrevet 11. oktober 2004 Del Skrevet 11. oktober 2004 For å bevare oversikten, er det viktig å vurdere hvorvidt en kode skal plasseres i en funksjon eller sub; avhengig av om den skal returnere informasjon eller ikke. En matematisk-formel, ala følgende, gir mest mening om den plasseres i en funksjon. Public Function Hypotenus(a As Double, b As Double) As Double Hypotenus = sqr(a^2 + b^2) End Function Mens en slik kode blir mest "korrekt" om den plasseres i en sub: Public Sub Log(sText As String) Open App.Path & "\Log.txt" For Append As #1 Print #1, sText Close #1 End Sub Ettersom den ikke trenger å returnere en variabel. Om du f.eks legger inn en "error-handler", forholder det seg derimot annerledes: Public Function Log(sText As String) As Long On Error GoTo Feil Open App.Path & "\Log.txt" For Append As #1 Print #1, sText Close #1 Log = 0 ' Ingen feil Exit Function Feil: Log = -1 ' Eller du kan returnere Err End Sub Men du trenger absolutt ikke bruke funskjoner. Du kan uten problemer legge inn en "input" variabel og en "output" variabel: Public Sub Log(sText As String, Ret As Long) On Error GoTo Feil Open App.Path & "\Log.txt" For Append As #1 Print #1, sText Close #1 Ret = 0 ' Ingen feil Exit Function Feil: Ret = -1 ' Eller du kan returnere Err End Sub Den eneste forskjellen er derfor at funksjoner returnerer variabler direkte, mens sub ikke gjør det. Du er ikke hindret av dette, og sub kan utmerket godt returnere informasjon, men du tjener deg selv ved å bruke funskjoner når det virker passende. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå