Enum Strings en C#

Muhammad Maisam Abbas 16 febrero 2024
  1. Crear enumeración de cadenas con función de extensión en C#
  2. Crear enumeración de cadenas con variables constantes en C#
  3. Crear enumeración de cadenas con la función ToString() en C#
Enum Strings en C#

Este tutorial presentará métodos para crear una enumeración de cadenas en C#.

Crear enumeración de cadenas con función de extensión en C#

Una enumeración es un conjunto predefinido de valores constantes que una variable puede almacenar. La clase enum se utiliza para declarar una enumeración en C#. Por defecto, el tipo de variables dentro de la clase enum es int. No existe un método incorporado para declarar una enumeración con valores de cadena. Si queremos declarar una enumeración con constantes de cadena, podemos usar la clase enum y una función de extensión para lograr este objetivo. El siguiente ejemplo de código nos muestra cómo crear una enumeración de valores de cadena con la clase enum y la función de extensión en C#.

using System;

namespace enum_with_string {
  public enum ErrorLevel { None, Low, Medium, High }

  public static class ErrorLevelExtensions {
    public static string GetString(this ErrorLevel me) {
      switch (me) {
        case ErrorLevel.None:
          return "NO ERRORS";
        case ErrorLevel.Low:
          return "LOW LEVEL ERROR";
        case ErrorLevel.Medium:
          return "MEDIUM LEVEL ERROR";
        case ErrorLevel.High:
          return "HIGH LEVEL ERROR";
        default:
          return "NO VALUE GIVEN";
      }
    }
  }
  class Program {
    static void Main(string[] args) {
      ErrorLevel e = ErrorLevel.None;
      string output = e.GetString();
      Console.WriteLine(output);
    }
  }
}

Producción :

NO ERRORS

Declaramos la enumeración ErrorLevel con los valores constantes None, Low, Medium, High con la palabra clave enum. Luego creamos la función de extensión GetString() que usa una declaración switch() para determinar el valor de la enumeración y devolver una cadena de acuerdo con el valor. El resultado de la función GetString() se guarda en la cadena de output.

Crear enumeración de cadenas con variables constantes en C#

También podemos lograr la funcionalidad de una enumeración inicializando algunas variables constantes dentro de una clase en C#. La palabra clave const especifica que una variable ahora es constante y no podemos cambiar su valor. El siguiente ejemplo de código nos muestra cómo podemos crear una enumeración de cadenas con variables constantes en C#.

using System;

namespace enum_with_string {
  public static class Error {
    public const string None = "No Errors";
    public const string Low = "Low Level Errors";
    public const string Medium = "Medium Level Errors";
    public const string High = "High Level Errors";
  }
  class Program {
    static void Main(string[] args) {
      String output = Error.Low;
      Console.WriteLine(output);
    }
  }
}

Producción :

Low Level Errors

Declaramos una public static class denominada Error e inicializamos todas las variables de public const string dentro de la clase. La razón para mantener la clase static es que no queremos crear una instancia de la clase Error dentro de la función main(). Guardamos el valor de Error.Low dentro de la variable de cadena output. Este enfoque es mucho más simple y fácil de entender. Lo mismo también se puede hacer con una estructura con la palabra clave struct en lugar de la palabra clave class.

Crear enumeración de cadenas con la función ToString() en C#

Este es un método improvisado para convertir los nombres de los valores dentro de la enumeración a cadenas en C#. Podemos usar la función ToString() con la instancia de una enumeración para convertir el nombre del valor dentro de la enumeración en una cadena. El siguiente ejemplo de código nos muestra cómo crear una enumeración de cadenas con la función ToString() en C#.

using System;

namespace enum_with_string {
  public enum ErrorLevel { None, Low, Medium, High }
  class Program {
    static void Main(string[] args) {
      ErrorLevel e = ErrorLevel.None;
      string output = e.ToString();
      Console.WriteLine(output);
    }
  }
}

Producción :

None

Convertimos el nombre None dentro de la enumeración ErrorLevel a una cadena con la función ToString() en C#. Este método es fácil de usar, pero tiene algunos inconvenientes. No podemos obtener el valor Low Level Errors como en nuestros ejemplos anteriores con este enfoque. Tenemos que seguir las convenciones de nomenclatura de C# en este enfoque. Este método solo es aconsejable si queremos crear una enumeración de cadenas de una sola palabra. Para cualquier otra cosa, deberíamos usar una de las dos formas discutidas anteriormente.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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.

LinkedIn

Artículo relacionado - Csharp String

Artículo relacionado - Csharp Enum