Converti Enum in stringa in C#
-
Converti enumerazione in stringa con l’attributo
Description
inC#
-
Converti Enum in stringa con l’istruzione
switch
inC#
Questo tutorial discuterà i metodi per convertire un enum in una stringa in C#.
Converti enumerazione in stringa con l’attributo Description
in C#
Non dobbiamo usare nulla per convertirlo in una stringa per un semplice valore Enum che segue le convenzioni di denominazione. Può essere mostrato all’utente con la funzione Console.WriteLine()
in C#. È dimostrato nell’esempio di codifica riportato di seguito.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace enum_to_string {
public enum Status { InProgress, Completed }
class Program {
static void Main(string[] args) {
Status complete = Status.Completed;
Console.WriteLine(complete);
}
}
}
Produzione:
Completed
Nel codice sopra, abbiamo stampato direttamente il valore Enum Completed
in formato stringa in C#. Ciò è stato possibile perché il nostro valore Enum seguiva le convenzioni di denominazione delle variabili in C#. Ma se vogliamo visualizzare una stringa di facile lettura, dobbiamo usare l’attributo Description
di Enums in C#. L’attributo Description
viene utilizzato per descrivere ogni valore di un Enum. Possiamo convertire il nostro Enum in una stringa di facile lettura scrivendo la stringa all’interno dell’attributo Description
di Enum. Il seguente esempio di codice ci mostra come convertire un valore Enum in una stringa con l’attributo Description
in C#.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;
namespace enum_to_string {
public enum Status {
[Description("The Desired Task is InProgress")] InProgress,
[Description("The Desired Task is Successfully Completed")] Completed
}
static class extensionClass {
public static string getDescription(this Enum e) {
Type eType = e.GetType();
string eName = Enum.GetName(eType, e);
if (eName != null) {
FieldInfo fieldInfo = eType.GetField(eName);
if (fieldInfo != null) {
DescriptionAttribute descriptionAttribute = Attribute.GetCustomAttribute(
fieldInfo, typeof(DescriptionAttribute)) as DescriptionAttribute;
if (descriptionAttribute != null) {
return descriptionAttribute.Description;
}
}
}
return null;
}
}
class Program {
static void Main(string[] args) {
Status complete = Status.Completed;
string description = complete.getDescription();
Console.WriteLine(description);
}
}
}
Produzione:
The Desired Task is Successfully Completed
Nel codice precedente, abbiamo creato un metodo di estensione, getDescription
, che restituisce la descrizione del valore Enum in C#. Questo metodo funziona perfettamente, ma è un po’ complesso. Questa complessità è semplificata nella sezione successiva.
Converti Enum in stringa con l’istruzione switch
in C#
Molta complessità del metodo precedente può essere semplificata utilizzando l’istruzione switch
in C#. Possiamo assegnare il valore desiderato alla nostra variabile stringa per ogni valore Enum con l’istruzione switch
in C#. Vedere il seguente esempio di codice.
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Reflection;
namespace enum_to_string {
public enum Status { InProgress, Completed }
static class extensionClass {
public static string getValue(this Status e) {
switch (e) {
case Status.InProgress:
return "The Desired Task is InProgress";
case Status.Completed:
return "The Desired Task is Successfully Completed";
}
return String.Empty;
}
}
class Program {
static void Main(string[] args) {
Status complete = Status.Completed;
string value = complete.getValue();
Console.WriteLine(value);
}
}
}
Produzione:
The Desired Task is Successfully Completed
Nel codice precedente, abbiamo creato un metodo di estensione, getValue()
, che restituisce una stringa basata sul valore Enum utilizzando l’istruzione switch
in C#. La funzione getValue()
utilizza l’istruzione switch
e restituisce una stringa diversa per ogni valore del nostro Enum specificato.
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedInArticolo correlato - Csharp Enum
- C# Converti la stringa in Enum
- Converti Int in Enum in C#
- Enumerare le stringhe in C#
- Enumerare un Enum in C#
- Ottieni valore Int da Enum in C#