Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116

    [c#/basic] più procedure con stesso nome e firma diversa

    Public Function prova(ByVal fileBmp As String) As Bitmap
    End Function

    Public Sub prova(ByRef bmp As Bitmap)
    End Sub


    sono in questa situazione:
    nella prima procedura ricevo un percorso di una immagine, creo l'immagine, la manipolo e la restituisco al chiamante.


    nel secondo caso ricevo una immagine per riferimento, la manipolo e la restituisco.

    volevo sapere se questo modo di procedere, una function e una sub con firme diverse possono andare
    Pietro

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da pietro09
    volevo sapere se questo modo di procedere, una function e una sub con firme diverse possono andare
    Se i metodi differiscono per numero e/o tipo di parametri in ingresso, possono essere posti in overload e invocati, consentendo al runtime di selezionare l'implementazione specifica in base al tipo di parametri passati al metodo.

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

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

  3. #3
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Originariamente inviato da alka
    Se i metodi differiscono per numero e/o tipo di parametri in ingresso, possono essere posti in overload e invocati, consentendo al runtime di selezionare l'implementazione specifica in base al tipo di parametri passati al metodo.

    Ciao!
    Ti ringrazio. Ciao
    Pietro

  4. #4
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Se i parametri differiscono per numero e tipo, la cosa è possibilissima tramite l'overload dei metodi, ovvero, in base ai dati passati, viene chiamato quello corrispondente.
    In C#, ad esempio:

    codice:
    using System;
    
    namespace Wrox.Metodi.Overload
    {
       class sovraccaricamento
        {
           public static void Main()
           {
               int a = 2;
               int b = 3;
               double d = 3.9;
               double e = 4.7;
               somma(a, b);
               somma(d, e);
           }
           public static void somma(int a, int b)
           {
               int c = a + b;
               Console.WriteLine("Sto sommando due interi");
               Console.WriteLine(c);
           }
           public static void somma(double d, double e)
           {
               double f = d + e;
               Console.WriteLine("Sto sommando due double");
               Console.WriteLine(f);
           }
        }
    }
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  5. #5
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    vi ringrazio delle risposte. La domanda deriva da questo:

    Ho una funzione che prende un percorso stringa, crea una bitmap, la ridimensiona, e la restituisce al chiamante.

    la seconda versione (e qui sono indeciso)

    1) prende come parametro la bitmap, la modifica e la restituisce al chiamante nel parametro medesimo, passato per riferimento.

    2) prende come parametro la bitmap, la modifica e la restituisce come funzione
    in questo caso, se faccio per esempio:

    bmp = funzione(bmp, ...), bmp perde il riferimento originale, perciò, se l'ho creata leggendo da disco, risulta sempre in uso

    va bene, non credo di essermi spiegato
    Pietro

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    Originariamente inviato da pietro09
    1) prende come parametro la bitmap, la modifica e la restituisce al chiamante nel parametro medesimo, passato per riferimento.
    Non è necessario passare l'oggetto per riferimento (poiché non devi modificare il riferimento).

    Originariamente inviato da pietro09
    2) prende come parametro la bitmap, la modifica e la restituisce come funzione
    in questo caso, se faccio per esempio
    In generale, io preferisco che sia il metodo esterno a creare gli oggetti che devono essere passati ad un metodo interno, a meno che il metodo interno non sia appositamente progettato per la creazione di un oggetto.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Utente di HTML.it L'avatar di pietro09
    Registrato dal
    Jan 2002
    Messaggi
    10,116
    Ho capito grazie
    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 © 2025 vBulletin Solutions, Inc. All rights reserved.