mille grazie a tutti![]()
mille grazie a tutti![]()
C'e' scritto anche nel mio help, ma quello che sto' dicendo e' che se fai una DLL che verra' poi utilizzata da altri e metti a disposizione una funzione che supporta parametri opzionali, non e' corretto inizializzare tali parametri con un qualsiasi valore, devi necessariamente utilizzare IsMissing, anche perche' nulla vieta che l'utilizzatore della tua DLL inavvertitamente passi un valore opzionale valorizzato con il tuo valore di default, generando malfunzionamenti.Originariamente inviato da giuSp
la storia ke isMissing funziona male in presenza di dati diverdi dal varian è vero...me il resto non è esatto...infatti è possibile passare valori opzionali di ogni tipo, basta però attribuirgli un valore di default...penso ke anche questo nell'HELP ci sia scritto...
...se nel tuo non c'è...guarda
Per farti capire:
se io chiamo call prova("Ciao") io il parametro opzionale l'ho specificato, solo che la sub si comporta come se non ci fosse.codice:pubblic sub prova (Optional strVar as string ="Ciao") if strVar="Ciao" then msgbox "parametro opzionale non valorizzato" end if end sub
con
se io chiamo call prova("Ciao") il parametro e' regolarmente passato e la sub fa' quello che deve fare, ma se io chiamo call prova() il parametro non c'e' e la sub continua a fare cio' che deve.codice:pubblic sub prova (Optional strVar AS Variant) if IsMissing (strVar) then msgbox "parametro opzionale non valorizzato" end if end sub
...and I miss you...like the deserts miss the rain...
quindi definisco Optional però per verificare se è pieno o no
uso IsMissing
così la variabile Optional la posso anche non assegnarci niente
giusto?
codice:Public Sub Message(text As String, title As String, other As Integer, Optional perGioc ) If IsMissing (perGioc) Then perGioc = GiocatoreCorrente end if
...and I miss you...like the deserts miss the rain...
mille grazie..siete stati molto chiari
ora vorrei risolvere un'altra mia lacuna...ma faccio un post nuovo
così anche per chi cerca poi in futuro