0Pricing
C# Academy · Lezione

Definizione e utilizzo degli enum

Crei enum con valori espliciti e impliciti.

Definizione e utilizzo degli enum è una lezione C# Academy gratuita su CoddyKit. Questa è la lezione 1 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento C# Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso C# Academy include 4 lezioni in totale.

Che cos'è un enum

Un enum è un insieme denominato di costanti correlate. Rende il codice più leggibile sostituendo i numeri magici con nomi significativi.

using System;

enum Direction { North, East, South, West }
class Program {
    static void Main() {
        Direction d = Direction.East;
        Console.WriteLine(d);
    }
}

Dichiarare un enum

Dichiari un enum con la parola chiave enum ed elenchi i relativi membri. Per impostazione predefinita, il primo vale 0, il successivo 1 e così via.

using System;

enum Day { Mon, Tue, Wed }
class Program {
    static void Main() {
        Console.WriteLine((int)Day.Mon);
        Console.WriteLine((int)Day.Wed);
    }
}

Valori sottostanti personalizzati

È possibile assegnare numeri espliciti. I membri a cui non viene assegnato un valore continuano dalla voce precedente.

using System;

enum Status { Active = 1, Paused = 5, Stopped }
class Program {
    static void Main() {
        Console.WriteLine((int)Status.Stopped);
    }
}

Scegliere il tipo sottostante

Per impostazione predefinita, gli enum usano int, ma è possibile scegliere un altro tipo integrale, ad esempio byte, per risparmiare spazio.

using System;

enum Level : byte { Low = 1, High = 200 }
class Program {
    static void Main() {
        Console.WriteLine((byte)Level.High);
    }
}

Enum nelle variabili

Usi un tipo enum come qualsiasi altro tipo per variabili, parametri e campi.

using System;

enum Color { Red, Green, Blue }
class Program {
    static void Describe(Color c) {
        Console.WriteLine("Color is " + c);
    }
    static void Main() {
        Describe(Color.Green);
    }
}

Enum in switch

Gli enum si combinano molto bene con switch per realizzare diramazioni chiare ed esaustive.

using System;

enum Signal { Stop, Go, Caution }
class Program {
    static void Main() {
        Signal s = Signal.Go;
        switch (s) {
            case Signal.Stop: Console.WriteLine("Halt"); break;
            case Signal.Go: Console.WriteLine("Move"); break;
            default: Console.WriteLine("Slow"); break;
        }
    }
}

Confrontare i valori di un enum

I valori degli enum possono essere confrontati con == e con gli operatori di ordinamento, in base ai rispettivi numeri sottostanti.

using System;

enum Priority { Low, Medium, High }
class Program {
    static void Main() {
        Console.WriteLine(Priority.High > Priority.Low);
    }
}

Valore predefinito di un enum

Un enum non inizializzato è uguale al membro con valore 0. È buona pratica fare in modo che 0 rappresenti un valore predefinito sensato, come None.

using System;

enum Mode { None, Fast, Slow }
class Program {
    static void Main() {
        Mode m = default;
        Console.WriteLine(m);
    }
}

Stampare i nomi degli enum

Chiamare ToString o stampare un enum mostra il nome del membro, molto più chiaro di un numero puro.

using System;

enum Fruit { Apple, Banana, Cherry }
class Program {
    static void Main() {
        Console.WriteLine(Fruit.Banana.ToString());
    }
}

Gli enum migliorano la leggibilità

Rispetto al passaggio di interi senza significato, gli enum documentano l'intento e impediscono i valori non validi.

using System;

enum Size { Small, Medium, Large }
class Program {
    static int PriceFor(Size s) {
        return s == Size.Large ? 12 : 8;
    }
    static void Main() {
        Console.WriteLine(PriceFor(Size.Large));
    }
}

Dove dichiarare gli enum

Gli enum possono trovarsi a livello di namespace o all'interno di una classe. Li mantenga vicino al codice che li utilizza.

using System;

class Program {
    enum Phase { Start, Run, End }
    static void Main() {
        Console.WriteLine(Phase.Run);
    }
}

Verifica rapida

Verifichi la propria comprensione degli enum.

Riepilogo

Un enum definisce un insieme di costanti denominate e migliora la leggibilità rispetto ai numeri magici. I membri assumono per impostazione predefinita i valori 0, 1, 2...; tuttavia, è possibile assegnare valori espliciti e persino modificare il tipo integrale sottostante.

Gli enum funzionano bene nelle variabili, nelle istruzioni switch e nei confronti, mostrano in output i nomi dei membri e usano come valore predefinito il membro con valore 0.

Domande Frequenti

La lezione «Definizione e utilizzo degli enum» è gratuita?

Sì — il testo completo di «Definizione e utilizzo degli enum» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso C# Academy, passa a CoddyKit PRO. Il corso C# Academy include 4 lezioni in totale.

Cosa imparerò in «Definizione e utilizzo degli enum»?

Crei enum con valori espliciti e impliciti. Eserciti C# Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare C# Academy?

Non è richiesta alcuna esperienza precedente. C# Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 1 di 4.

Quanto tempo richiede la lezione «Definizione e utilizzo degli enum»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione C# Academy?

Sì. Ogni lezione C# Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Definizione e utilizzo degli enum
  2. Enum Flags e combinazioni bitwise
  3. Conversione e analisi degli enum
  4. Iterazione sui valori degli enum
← Torna a C# Academy