salve, ormai sono anni che programmo in asp, ma ho un quesito al quale non ho ancora trovato risposta:
di solito creo una funzione semplicmente in questo modo:
function prova(vars)
salve, ormai sono anni che programmo in asp, ma ho un quesito al quale non ho ancora trovato risposta:
di solito creo una funzione semplicmente in questo modo:
function prova(vars)
ho inviato per sbaglio..rifaccio
salve, ormai sono anni che programmo in asp, ma ho un quesito al quale non ho ancora trovato risposta:
di solito creo una funzione semplicmente in questo modo:
function prova(vars)
funzione
end function
poi per richiamarla semplicemente prova(vars)
ecco a questo punto mi chiedo
1. a cosa server dichiarare la funzione come Private o Public?..non funziona ugualmente?
2. perchè utilizzare "call" per chiamare una funzione quando posso direttamente utilizzarla?
grazie in anticipo..
Allora,
dichiarare le function in un contesto non OOP (Object-oriented programming) è indubbiamente lecito, naturalmente definirla pubblica o privata è inutile perchè diventa automaticamente una funzione "globale" che viene vista da tutto
Al contrario, se crei classi con metodi etc, li ha molto molto senso definire funzioni e variabili come pubbliche/private/protette etc
poi, visto che in asp (vb) c'è questa differenza tra function e sub, le function si usano senza il call, le sub al contrario puoi scegliere se usarle senza il call o metterci il call (mi pare scelta obbligata se hai piu parametri? boh qualcosa del genere).. è anche vero che le sub mi hanno sempre lasciato un pò perplesso, piu che altro sono utili per stampare html e cose simili.. per tutto il resto c'è la function
IP-PBX management: http://www.easypbx.it
Old account: 2126 messages
Oldest account: 3559 messages
La funzione delle function è quella di restituire un risultato dopo aver effettuato delle operazioni.
Quella delle sub altro non è che eseguire a parte, in procedure separate, alcune operazioni: scrivere html, eseguire operazioni sulla base dati, ecc.
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
io fin'ora ho scritto html sempre con le function...
la domanda a sto punto è: perchè la sub e non la function?
cosa cambia nel loro modo di lavorare?
grazie ancora
beh te l'ho detto, poi sei libero di fare come preferisci.
In entrambi i casi trasferisci parte del processo altrove.
Per loro natura le function restituiscono il risultato di una eleborazione o di un controllo (es. verifica esistenza email) mentre le sub eseguono semplicemente delle operazioni (es. invio email).
Ma con artifici puoi non far restituire nulla alle function oppure far restituire qualcosa alle sub.
Roby
www.creamweb.it [v. 3.0]
:: Script ASP!
:: Web directory gratuita!
:: Campioni del mondo!
ottimo...chiaro...
grazie
Aggiungo che Call puo' essere utilizzato indistintamente per richiamare sub o function che non devono restituire valori (una function che non restituisce valori comunque come è stato già detto non ha molta ragion d'essere in asp vista l'esistenza delle sub).
Quando si richiama una sub/function con call è obbligatorio racchiudere i parametri passati a queste tra parentesi tonde. Viceversa senza il Call le parentesi non devono essere usate.
![]()
xxx
chiedo in particolar modo ad Alethesnake,
tu mi dici che una function che non restituisce valori "non ha ragione di esistere", in quanto ci sono le Sub.
ma ti chiedo: a livello fisico, se alla fine tutti e due fanno il lavoro di autt'e due, cos'è che cambia fra la function e la sub...? non credo sia solo la restituzione o meno di valori...
crazie ancora..
Beh, come è stato detto la differenza tra sub e function è già stata indicata sopra, è logica più che fisica.Originariamente inviato da ser_god
chiedo in particolar modo ad Alethesnake,
tu mi dici che una function che non restituisce valori "non ha ragione di esistere", in quanto ci sono le Sub.
ma ti chiedo: a livello fisico, se alla fine tutti e due fanno il lavoro di autt'e due, cos'è che cambia fra la function e la sub...? non credo sia solo la restituzione o meno di valori...
crazie ancora..
Una funzione la usi se devi compiere determinate elaborazioni che ti devono restituire un risultato (ex controllo e-mail come diceva roby, controllo codice fiscale, calcoli matematici e chi più ne ha più ne metta).
Una sub la usi per eseguire porzioni di codice che non devono necessariamente ritornare risultati (anche se ci sono artifici per farlo), per esempio modulo di invio di una mail, porzioni di codice ridondanti, ecc.
Nessuno poi ti vieta di scrivere qualcosa tipo:
Anche se avrebbe più senso in questo caso usare una sub.codice:Function Pippo() Response.Write("ciao mondo") End Function
Considera infine che le subroutine sono artifici di vb, nel quale microsoft ha ritenuto necessario sottolineare (in ottica di "agevolazione" dell'utente?) la differenza tra blocchi che ritornano e blocchi che non ritornano valori.
In tutti gli altri linguaggi (almeno per quelli che conosco), esistono solo function e quelle che non ritornano valori devono essere marcate con void anziché col tipo di dato ritornato.
![]()
xxx