Dovrei creare una funzione del tipo
Function Controlla (SubDaChiamare As Sub(??))
If qualcosa
SubDaChiamare
End If
End Function
oppure sub chiama sub
Sub Controlla (SubDaChiamare As Sub(??))
If qualcosa
SubDaChiamare
End If
End Sub
è possibile?
Dovrei creare una funzione del tipo
Function Controlla (SubDaChiamare As Sub(??))
If qualcosa
SubDaChiamare
End If
End Function
oppure sub chiama sub
Sub Controlla (SubDaChiamare As Sub(??))
If qualcosa
SubDaChiamare
End If
End Sub
è possibile?
si si puoi fare quello che vuoi.
le funzioni le utilizzi solo se hai un risultato di ritorno altrimetni fai la sub
Mettere come parametro di una funzione il nome di un'altra sub o funzione?
Se ho capito il motivo, mi sembra che quello che serve a te puoi ottenerlo aggiungendo un nuovo evento e defindendo quale funzione verra' chiamata allo scatenarsi dell'evento.
codice:Public Event tuoEvento Private Sub frmNetShop_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load AddHandler tuoEvento , ciccio End Sub Private Function ciccio() ' codice eseguito allo scatenarsi dell'evento End Function Function Controlla If qualcosa ' scateno l'evento RaiseEvent tuoEvento End If End Function
Saluti a tutti
Riccardo
Credo che si possa fare utilizzando i Delegate, ossia, qualcosa di simile ai puntatori di funzione del C.
Ad esempio si possono implementare le procedure di callback che accettano un Delegate come argomento.
Vedi un po' te: qui non mi sono mai avventurato![]()
Pietro
dim myvar as string = controlla(myfunz2)
dove avrai:
function controlla(byval parametro as string) as string
return parametro
end function
function myfunz2() as string
return qualcosa
end function
cosi dovrebbe andare
@ riccardone
il tuo codice cosi com'è non mi funziona ..
ho dovuto modificare in questo modo:
prima o me lo scatenava sempre o non me lo scatenava maicodice:Public Event tuoEvento Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Controlla() End Sub Private Function ScatenaE() ' codice eseguito allo scatenarsi dell'evento Response.Write("OK.. evento scatenato") End Function Function Controlla() If Request.QueryString("prova")="prova" ' scateno l'evento AddHandler tuoEvento , ScatenaE RaiseEvent tuoEvento End If End Function
a daniele: sinceramente non ho capito come funziona il tuo codice![]()
me lo potresti spiegare?
(ti sto scrivendo un pvt)
grazie a tutti, anke a pietro
ci riprovo però ti dico no nso se funziona.
praticamente tu metti in una variabile il risultato di una funzione la quale ha come parametro il risultato di un'altra funzione.codice:sub page_load dim myvar as string = Controlla(Somma()) end sub function somma() as string return 1 end function function Controlla(ByVal parametro as String) as string if parametro=1 then return "Hai perso" else return "Hai vinto" end if end function
Il problema che è stato posto è:Originariamente inviato da sms
grazie a tutti, anke a pietro
ho una procedura Controlla che accetta come parametro una procedura SubDaChiamare. Si può fare?
una soluzione è quella degli eventi proposta da Riccardo, l'altra è quella dei delegate.
Esempio
Controlla(AddressOf SubDaChiamare)
dove SubDaChiamare è definita come
Private Sub SubDaChiamare(ByVal callback As delegateSubDaChiamare)
Pietro
ehi quante possibilità![]()
![]()
![]()
grazie tante
Non dimenticare i Delegate di tipo MulticastOriginariamente inviato da sms
ehi quante possibilità![]()
![]()
![]()
grazie tantepoi non dimenticare di farci sapere
![]()
Pietro