Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908

    [C#]Chi mi spiega le enumerazioni?

    Ho appena letto il capitolo relativo alle enumerazioni e l'argomento sembra essere abbastanza complesso!!!Qualcuno di voi potrebbe spiegarmi in parole povere cosa sono e a cosa servono?Ecco il codice d'esempio del libro:

    codice:
    using System;
    
    namespace Wrox.Prova.Enumerazioni
    {
        public enum TimeOfDay
        {
            Morning = 0,
            Afternoon = 1,
            Evening = 2
        }
        class EnumExample
        {
            public static int Main()
            {
                WriteGreeting(TimeOfDay.Morning);
                return 0;
            }
            static void WriteGreeting(TimeOfDay timeOfDay)
            {
                switch (timeOfDay)
                {
                    case TimeOfDay.Morning:
                        Console.WriteLine("Good morning!");
                        break;
                    case TimeOfDay.Afternoon:
                        Console.WriteLine("Good afternoon!");
                        break;
                    case TimeOfDay.Evening:
                        Console.WriteLine("Good evening!");
                        break;
                    default:
                        Console.WriteLine("Hello!");
                        break;
                }
            }
        }
    }
    Allora, ho capito che le enumerazioni sono dei tipi di interi definiti dall'utente, ora, nel codice di cui sopra e precisamente:

    codice:
    public enum TimeOfDay
        {
            Morning = 0,
            Afternoon = 1,
            Evening = 2
        }
    creiamo un enumeratore chiamato TimOfDay, con all'interno delle istanze(si chiamano così Morting, Evening ecc... o come?) alle quali assegniamo dei valori, sembrerebbe progressivi, giusto?una volta fatto ciò, non capisco qual'è il tipo d'impiego esatto di queste enumerazioni!Fondamentalmente, a che servono?Non si possono usare delle normalissime variabili?Spero di essere stato chiaro caro alka!
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465

    Re: [C#]Chi mi spiega le enumerazioni?

    Originariamente inviato da dwb
    Non si possono usare delle normalissime variabili?
    Sì, ma non potresti controllare che il valore assegnato alla variabile ricada nel set di valori accettabili, e inoltre il valore numerico non sarebbe significativo quanto lo è uno dei valori enumerativi.

    Originariamente inviato da dwb
    Spero di essere stato chiaro caro alka!
    Furbino...
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  3. #3
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Ok alka, quindi, in fin dei conti, comunque, le enumerazioni servono per scrivere codice più "elegante" e leggibile?
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da dwb
    Ok alka, quindi, in fin dei conti, comunque, le enumerazioni servono per scrivere codice più "elegante" e leggibile?
    Non ricordo se è possibile in C# e VB.NET, suppongo di sì, ma in Delphi.NET (visto che di .NET si parla) gli elementi dei tipi enumerativi possono essere scanditi; all'occorrenza, si possono inoltre inserire all'interno di insiemi (set).

    Non è solo una questione di eleganza e leggibilità, ma anche di sicurezza. Guarda l'editor delle proprietà di Visual Studio: ovunque sia richiesto un tipo enumerativo, è solo una ristretta cerchia di valori quella che puoi selezionare.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Perfetto, grazie!Quindi si ha anche la sicurezza di ricevere SOLO i dati aspettati!
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,465
    Originariamente inviato da dwb
    Perfetto, grazie!Quindi si ha anche la sicurezza di ricevere SOLO i dati aspettati!
    In termini di "insieme di valori", sì.

    Poi è chiaro che la verifica dell'effettiva applicabilità di uno dei valori allo stato attuale di un "componente" è un'altra cosa.

    Ci possono essere altri vantaggi legati ai tipi enumerativi, ma ora... mi sfuggono.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Originariamente inviato da alka
    Ci possono essere altri vantaggi legati ai tipi enumerativi, ma ora... mi sfuggono.
    Finalmente ho trovato qualcosa che non ricordi! :quote:
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  8. #8
    Possono tornare comodi anche nei cosiddetti campi di bit.
    Amaro C++, il gusto pieno dell'undefined behavior.

  9. #9
    Utente di HTML.it L'avatar di dwb
    Registrato dal
    Mar 2001
    residenza
    My IDE! :)
    Messaggi
    2,908
    Originariamente inviato da MItaly
    Possono tornare comodi anche nei cosiddetti campi di bit.
    Cioè? VVoVe:
    ~Il nome di una variabile deve riflettere il suo scopo e non il suo tipo di dati, NET Framework.

  10. #10
    http://en.wikipedia.org/wiki/Bitfield
    Usando gli enum al posto delle costanti si danno nomi descrittivi ai singoli bit.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.