Visualizzazione dei risultati da 1 a 4 su 4

Visualizzazione discussione

  1. #3
    Utente di HTML.it L'avatar di U235
    Registrato dal
    Mar 2006
    Messaggi
    1,536
    Quote Originariamente inviata da Kahm Visualizza il messaggio
    salve a tutti
    ho una funzione che restituisce un intero
    codice:
        private int GetValueCBB(ComboBox CBB)
            {
               int val = 0;
             return int;
         }
    ora mi serve esattamente la stessa funzione, solo che deve restituire una stringa, non voglio cambiare nome in quanto esplica esattamente quello che deve fare
    secondo la documentazione potrei fare un OVERRIDE e quindi far ritornare un tipo di dati diverso, ma da errore che già esiste la fuzione GetValueCBB

    cosa devo fare?
    ho già messo la parola chiave override, sbaglio qualcosa?

    codice:
        private override  string GetValueCBB(ComboBox CBB)
            {
                string val = "";
               return val;
       }
    Ciao
    Mi sa che stai facendo un po di confusione... gli override si scrivono nella classe derivata e riguardano membri accessibili della classe base, quindi metodi (in c# le funzioni si chiamano metodi) non "private". Nel caso il tuo metodo sia privato (come da tuo esempio), la classe derivata non ha nessun accesso alla classe di base, per cui riscrivendo lo stesso con firma diversa non dovrebbe essere un problema e non dovrebbe essere necessario scrivere nessun override. Detto ciò forse tu ti riferisci alla stessa classe, quindi un overload, e per cambiare la firma devi necessariamente cambiare anche i parametri. Oppure possiamo parlare di tipo generico o di object, in questo caso un unico metodo che restituisce tipi diversi (quindi tipi T, oppure objects). In questo caso, ammesso che sia conveniente, bisognerebbe capire bene quali discriminanti vuoi usare.
    esempio :
    codice:
    private T GetValueCBB<T>(ComboBox  CBB)
         {
             if(typeof(T)==typeof(string))
                  return (T)(object)"Ciao";
             if(typeof(T)==typeof(int))
                  return (T)(object)0;
             return default(T);
         }
    
    
    
    
    ....
    Console.WriteLine(GetValueCBB<int>(CBB));
    Console.WriteLine(GetValueCBB<string>(CBB));
    Ultima modifica di U235; 11-07-2023 a 22:26

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.