Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245

    [VB .Net] Funzioni delegate e parametri

    Ciao
    E' la prima volta che utilizzo questo tipo di funzione e ho delle difficoltà con il passaggio di parametri.
    Nello specifico se la funzione eseguita viene invocata soltanto il risultato della stessa viene portato al di fuori ma non i parametri passati.
    Faccio un esempio:
    codice:
    Private Delegate Function Somma_Delegate(ByRef Num1 As Integer, ByRef Num2 As Integer) As Integer
    
        Private Function Somma(ByRef Num1 As Integer, ByRef Num2 As Integer) As Integer
            If Me.InvokeRequired Then
                Return Me.Invoke(New Somma_Delegate(AddressOf Somma), New Object() {Num1, Num2})
            End If
    
            Somma = (Num1 + Num2)
            Num1 = 6
        End Function
    
        Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
            Dim Risultato As Integer
            Dim Numero1 As Integer
            Dim Numero2 As Integer
    
            Numero1 = 10
            Numero2 = 20
            Risultato = Somma(Numero1, Numero2)
            MsgBox(CStr(Numero1))
        End Sub
    Premendo il pulsante uso la funzione in modo diretto e il parametro Numero1 viene modificato (valore 6).
    In caso di funzione invocata tale valore rimane però quello iniziale (valore 10).

    Cosa sbaglio?
    Grazie
    ... e non usare while wend è una sintassi deprecata

  2. #2
    Utente di HTML.it L'avatar di Mabi
    Registrato dal
    May 2002
    Messaggi
    1,245
    Dopo quasi un mesetto di tempo riprendo la discussione aggiornandomi da solo...
    Non avendo trovato spiegazioni ma avendo comunque la voglia di portare avanti il progetto, sono riuscito comunque a trovare una soluzione.
    E' soltanto un espediente da chi vuole capire e imparare ma che non potendo si arrangia come può.

    La soluzione è la più banale e cioè visto che la variabile di risultato della funzione riesco a portarla fuori, creo tante copie della funzione delegata quanti sono i parametri da voler portare fuori.
    Nel codice d'esempio ci sarà quindi la funzione che crea la somma e poi la sua copia che mi esporta l'addendo con valore modificato.

    Se qualcuno ha una spiegazione e un metodo più appropriato mi faccia sapere...
    Grazie
    ... e non usare while wend è una sintassi deprecata

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 © 2025 vBulletin Solutions, Inc. All rights reserved.