Visualizzazione dei risultati da 1 a 10 su 10

Discussione: funzione kiama sub!

  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127

    funzione kiama sub!

    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?

  2. #2
    si si puoi fare quello che vuoi.


    le funzioni le utilizzi solo se hai un risultato di ritorno altrimetni fai la sub

  3. #3
    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

  4. #4
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    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

  5. #5
    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

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    @ riccardone
    il tuo codice cosi com'è non mi funziona ..
    ho dovuto modificare in questo modo:
    codice:
    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
    prima o me lo scatenava sempre o non me lo scatenava mai

    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

  7. #7
    ci riprovo però ti dico no nso se funziona.
    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
    praticamente tu metti in una variabile il risultato di una funzione la quale ha come parametro il risultato di un'altra funzione.

  8. #8
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da sms
    grazie a tutti, anke a pietro
    Il problema che è stato posto è:
    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

  9. #9
    Utente di HTML.it
    Registrato dal
    Sep 2002
    Messaggi
    4,127
    ehi quante possibilità
    grazie tante

  10. #10
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da sms
    ehi quante possibilità
    grazie tante
    Non dimenticare i Delegate di tipo Multicast poi non dimenticare di farci sapere
    Pietro

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.