Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Differenza tra void e return

    Salve a tutti,
    sto studiando da un po' C# ed è il mio primo linguaggio di programmazione. Quindi, oltre che la sintassi vera e propria, sto cercando di apprendere anche tutti i concetti che stanno dietro la OOP.
    Il problema che mi è sorto riguarda la comprensione della differenza tra un metodo che non restituisce nulla void ) ed uno che restituisce un valore(return.
    Non riesco ad avere chiara questa differenza, anche perchè sul mio libro viene trattato un po' frettolosamente.
    Fiduciosa della vostra comprensione riguardo le difficoltà di un principiante, attendo qualche illuminante riposta.
    Ciao

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Ricorda che il linguaggio va specificato nel titolo.

    L'ho aggiunto io, per questa volta.


    Ad ogni modo la differenza è veramente intuibile:
    Un metodo void, che non restituisce nulla, è semplicemente una parte di codice che svolge un lavoro.
    Un metodo che, invece, restituisce un valore è equiparabile ad una funzione: fa un lavoro e restituisce il risultato al chiamante.

    La differenza fra le chiamate è evidente: se metodo1() è void e metodo2() restituisce un intero:
    codice:
    // Qui chiamo metodo1():
    oggetto.metodo1();   // Non ho nessun risultato da ottenere
    
    // Qui chiamo metodo2();
    int valore = oggetto.metodo2();   // Ottengo un risultato e lo salvo nella variabile "valore"
    Uno dei concetti più semplici è, ad esempio, la differenza fra un metoto setter e un metodo getter: il primo serve a settare dei parametri. Il secondo serve per ottenerli. Di conseguenza, il primo non restituirà nulla (serve solo a ricevere dei dati che andranno salvati da qualche parte ed, eventualmente, farci sopra qualche elaborazione), mentre il secondo serve a reperire dei dati che si necessitano, quindi dovrà restituire proprio i dati richiesti.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Innanzitutto, scusa della mancata specificazione del linguaggio.

    Per quanto riguarda la differenza è come se le istruzioni di un metodo dichiarato come void, eseguissero qualcosa che poi non utilizzo nel resto del codice (come qualcosa che nasce e muore nell'ambito di quel metodo), mentre quando uso return, mi restituisce appunto un valore che mi servirà per qualcos'altro nell'oggetto in cui ho chiamato il metodo.

    Ho detto male?

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Non si può parlare di differenza tra void e return, in quanto le parole chiave hanno ambiti di applicazione correlati ma separati.

    void è semplicemente l'indicazione che un metodo non restituisce alcun valore al chiamante, e può essere sostituito da un tipo di dato nel caso contrario.

    L'uso di return all'interno di un metodo causa il ritorno al metodo chiamante: è possibile far seguire opzionalmente a return un valore se il metodo lo restituisce (cioè quando il tipo del valore di ritorno del metodo *non* è void); in caso contrario, basta scrivere return, senza aggiungere nient'altro, per tornare al metodo chiamante.

    Cerca su MSDN: ci saranno senz'altro ulteriori considerazioni e approfondimenti a riguardo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

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.