Jag har läst att man inte ska använda paranteser när man anropar subrutiner, utan bara för funktioner. Men jag tror bestämt jag har sett folk använda det ändå utan att få något felmeddelande. När jag använder paranteser för en subrutin så får jag felmeddelande.
Okej, så det är när man ger en sub flera argument som paranteser strular till det. Jag anropar alltid subs utan paranteser, lika bra att forsätta så då :D
Parenteser kan strula till det även med en parameter. Att sätta parenteser runt en parameter i ett anrop innebär att värdet av parametern skickas istället för en referens.
Här innebär parentesen alltså att det är värdet av variabeln lngCnt som skickas istället för en referens till variabeln. Alltså kommer variabeln inte att ändras, och fortfarande innehålla ett när den skrivs ut.
Sub Increase(ByRef lngCounter)
lngCounter = lngCounter + 1
End Sub
Dim lngCnt
lngCnt = 1
Increase(lngCnt)
Response.Write lngCnt
Jag tycker inte koden blir så mycket renare av 100 Call Response.Write("..."). Ser ganska äckligt ut. Gammal Basic kvarleva...
Subbar anropar man utan paranteser...
Om en funktion anropas med call kommer ett eventuellt returvärde att ignoreras.
Jag har iofs inte testat skriva
x = call theFunction()
men jag gissar att det inte fungerar.
Rätt enligt mig ;) är att om man anropar en metod till ett objekt ska det vara paranteser.
Anropar man en funktion eller sub ska det vara paranteser.
Anropar/läser man ett property till ett objekt ska det inte vara några paranteser.