Condividi tramite


Stringhe di formato di enumerazione

È possibile utilizzare il Enum.ToString metodo per creare un nuovo oggetto stringa che rappresenta il valore numerico, esadecimale o stringa di un membro di enumerazione. Questo metodo accetta una delle stringhe di formattazione dell'enumerazione per specificare il valore che si desidera restituire.

Le sezioni seguenti elencano le stringhe di formattazione dell'enumerazione e i valori restituiti. Questi identificatori di formato non fanno distinzione tra maiuscole e minuscole.

G o g

Visualizza la voce di enumerazione come valore stringa, se possibile, e in caso contrario visualizza il valore intero dell'istanza corrente. Se l'enumerazione viene definita con il FlagsAttribute set, i valori stringa di ogni voce valida vengono concatenati insieme, separati da virgole. Se l'attributo Flags non è impostato, un valore non valido viene visualizzato come voce numerica. Nell'esempio seguente viene illustrato l'identificatore di G formato.

Console.WriteLine(((DayOfWeek)7).ToString("G"));      // 7
Console.WriteLine(ConsoleColor.Red.ToString("G"));    // Red

var attributes = FileAttributes.Hidden | FileAttributes.Archive;
Console.WriteLine(attributes.ToString("G"));          // Hidden, Archive
Console.WriteLine((CType(7, DayOfWeek)).ToString("G"))    ' 7
Console.WriteLine(ConsoleColor.Red.ToString("G"))         ' Red
Dim attributes As FileAttributes = FileAttributes.Hidden Or _
                                   FileAttributes.Archive
Console.WriteLine(attributes.ToString("G"))               ' Hidden, Archive

F o f

Visualizza la voce di enumerazione come valore stringa, se possibile. Se il valore può essere visualizzato come somma delle voci nell'enumerazione (anche se l'attributo Flags non è presente), i valori stringa di ogni voce valida vengono concatenati, separati da virgole. Se il valore non può essere determinato dalle voci di enumerazione, il valore viene formattato come valore intero. Nell'esempio seguente viene illustrato l'identificatore di F formato.

Console.WriteLine(((DayOfWeek)7).ToString("F"));       // Monday, Saturday
Console.WriteLine(ConsoleColor.Blue.ToString("F"));    // Blue

var attributes = FileAttributes.Hidden | FileAttributes.Archive;
Console.WriteLine(attributes.ToString("F"));           // Hidden, Archive
Console.WriteLine((CType(7, DayOfWeek)).ToString("F"))    ' Monday, Saturday
Console.WriteLine(ConsoleColor.Blue.ToString("F"))        ' Blue
Dim attributes As FileAttributes = FileAttributes.Hidden Or _
                                   FileAttributes.Archive
Console.WriteLine(attributes.ToString("F"))               ' Hidden, Archive

D o d

Visualizza la voce di enumerazione come valore intero nella rappresentazione più breve possibile. Nell'esempio seguente viene illustrato l'identificatore di D formato.

Console.WriteLine(((DayOfWeek)7).ToString("D"));       // 7
Console.WriteLine(ConsoleColor.Cyan.ToString("D"));    // 11

var attributes = FileAttributes.Hidden | FileAttributes.Archive;
Console.WriteLine(attributes.ToString("D"));           // 34
Console.WriteLine((CType(7, DayOfWeek)).ToString("D"))     ' 7
Console.WriteLine(ConsoleColor.Cyan.ToString("D"))         ' 11
Dim attributes As FileAttributes = FileAttributes.Hidden Or _
                                   FileAttributes.Archive
Console.WriteLine(attributes.ToString("D"))                ' 34

X o x

Visualizza la voce di enumerazione come valore esadecimale. Il valore è rappresentato con zeri iniziali in base alle esigenze, per assicurarsi che la stringa di risultato abbia due caratteri per ogni byte nel tipo numerico sottostante del tipo di enumerazione. Nell'esempio seguente viene illustrato l'identificatore di formato X. Nell'esempio, i tipi sottostanti di DayOfWeekConsoleColor e FileAttributes sono Int32o un intero a 32 bit (o a 4 byte), che produce una stringa di risultato di 8 caratteri.

Console.WriteLine(((DayOfWeek)7).ToString("X"));       // 00000007
Console.WriteLine(ConsoleColor.Cyan.ToString("X"));    // 0000000B

var attributes = FileAttributes.Hidden | FileAttributes.Archive;
Console.WriteLine(attributes.ToString("X"));           // 00000022
Console.WriteLine((CType(7, DayOfWeek)).ToString("X"))    ' 00000007
Console.WriteLine(ConsoleColor.Cyan.ToString("X"))        ' 0000000B
Dim attributes As FileAttributes = FileAttributes.Hidden Or _
                                   FileAttributes.Archive
Console.WriteLine(attributes.ToString("X"))               ' 00000022

Esempio

Nell'esempio seguente viene definita un'enumerazione denominata Colors costituita da tre voci: Red, Bluee Green.

public enum Color { Red = 1, Blue = 2, Green = 3 };
Public Enum Color
    Red = 1
    Blue = 2
    Green = 3
End Enum

Dopo aver definito l'enumerazione, è possibile dichiarare un'istanza nel modo seguente.

Color myColor = Color.Green;
Dim myColor As Color = Color.Green

Il Color.ToString(System.String) metodo può quindi essere utilizzato per visualizzare il valore di enumerazione in modi diversi, a seconda dell'identificatore di formato passato.

Console.WriteLine($"The value of myColor is {myColor.ToString("G")}.");
Console.WriteLine($"The value of myColor is {myColor.ToString("F")}.");
Console.WriteLine($"The value of myColor is {myColor.ToString("D")}.");
Console.WriteLine($"The value of myColor is 0x{myColor.ToString("X")}.");
// The example displays the following output to the console:
//       The value of myColor is Green.
//       The value of myColor is Green.
//       The value of myColor is 3.
//       The value of myColor is 0x00000003.
Console.WriteLine("The value of myColor is {0}.", _
                  myColor.ToString("G"))
Console.WriteLine("The value of myColor is {0}.", _
                  myColor.ToString("F"))
Console.WriteLine("The value of myColor is {0}.", _
                  myColor.ToString("D"))
Console.WriteLine("The value of myColor is 0x{0}.", _
                  myColor.ToString("X"))
' The example displays the following output to the console:
'       The value of myColor is Green.
'       The value of myColor is Green.
'       The value of myColor is 3.
'       The value of myColor is 0x00000003.      

Vedere anche