English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In C#, enum (tipi enumerativi) viene utilizzato per assegnare nomi costanti a un insieme di valori interi. Questo rende i valori costanti più leggibili, ad esempio, WeekDays.Monday è più leggibile rispetto al numero 0 quando si fa riferimento a un giorno della settimana.
L'enumerazione è definita direttamente utilizzando la parola chiave enum all'interno di uno spazio dei nomi, di una classe o di una struttura. Tutti i nomi delle costanti possono essere dichiarati all'interno delle graffe e separati da virgole. Di seguito è definita l'enumerazione dei giorni lavorativi.
enum WeekDays { Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato, Domenica }
Sopra, l'enumerazione WeekDays viene dichiarata in ogni riga, separata da virgole.
Se non viene assegnato un valore a un membro dell'enumerazione, il compilatore assegnerà automaticamente un valore intero a ciascun membro (iniziando da zero). Il primo membro dell'enumerazione sarà 0, e il valore di ciascun membro successivo dell'enumerazione aumenterà di 1.
enum WeekDays { Monday, // 0 Tuesday, // 1 Wednesday, // 2 Thursday, // 3 Friday, // 4 Saturday, // 5 Sunday // 6 }
Puoi assegnare valori diversi ai membri dell'enumerazione. La modifica del valore predefinito dei membri dell'enumerazione assegnerà automaticamente valori incrementali in ordine ai altri membri.
enum Categories { Electronics, // 0 Food, // 1 Automotive = 6, // 6 Arts, // 7 BeautyCare, // 8 Fashion // 9 }
Puoi assegnare valori diversi a ciascun membro.
enum Categories { Electronics = 1, Food = 5, Automotive = 6, Arts = 10, BeautyCare = 11, Fashion = 15, WomanFashion = 15 }
Un'enumerazione può essere di qualsiasi tipo di dati numerici, ad esempio byte, sbyte, short, ushort, int, uint, long o ulong. Tuttavia, un'enumerazione non può essere di tipo stringa.
Dopo il nome enum specifica il tipo come :type. Di seguito è definita un'enumerazione byte.
enum Categories: byte { Electronics = 1, Food = 5, Automotive = 6, Arts = 10, BeautyCare = 11, Fashion = 15 }
Puoi utilizzare la sintassi punto: enum.member per accedere all'enumerazione
enum WeekDays { Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato, Domenica } Console.WriteLine(WeekDays.Monday); // Lunedì Console.WriteLine(WeekDays.Tuesday); // Martedì Console.WriteLine(WeekDays.Wednesday); // Mercoledì Console.WriteLine(WeekDays.Thursday); // Giovedì Console.WriteLine(WeekDays.Friday); // Venerdì Console.WriteLine(WeekDays.Saturday); // Sabato Console.WriteLine(WeekDays.Sunday); // Domenica
La conversione da tipo enumerativo al tipo di intero di base richiede un casting esplicito.
enum WeekDays { Lunedì, Martedì, Mercoledì, Giovedì, Venerdì, Sabato, Domenica } Console.WriteLine(WeekDays.Friday); // Output: Venerdì int day = (int) WeekDays.Friday; // Conversione da enum a int Console.WriteLine(day); // Output: 4 var wd = (WeekDays) 5; // Conversione da int a enum Console.WriteLine(wd); // Output: Sabato
enum è una classe astratta.