C# 中的字符串枚举

Muhammad Maisam Abbas 2023年1月30日 2021年3月21日
  1. 在 C# 中使用扩展方法创建字符串枚举
  2. 在 C# 中使用常量变量创建字符串枚举
  3. 在 C# 中使用 ToString() 函数创建字符串枚举
C# 中的字符串枚举

本教程将介绍在 C# 中创建字符串枚举的方法。

在 C# 中使用扩展方法创建字符串枚举

枚举是变量可以存储的一组预定义的常数值。enum用于在 C# 中声明枚举。默认情况下,enum 类中的变量类型为 int。没有内置方法声明带有字符串值的枚举。如果我们想用字符串常量声明一个枚举,可以使用 enum 类和一个扩展方法以实现此目标。以下代码示例向我们展示了如何使用 C# 中的 enum 类和扩展方法创建字符串值的枚举。

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);
        }
    }
}

输出:

NO ERRORS

我们用 enum 关键字声明了常量值 None, Low, Medium, High 的枚举 ErrorLevel。然后,我们创建了扩展函数 GetString(),该函数使用 switch() 语句确定枚举的值并根据该值返回字符串。GetString() 函数的结果保存在 output 字符串中。

在 C# 中使用常量变量创建字符串枚举

我们还可以通过在 C# 类中初始化一些常量变量来实现枚举的功能。const 关键字指定变量现在是常量,我们无法更改其值。以下代码示例向我们展示了如何在 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);
        }
    }
}

输出:

Low Level Errors

我们声明了一个名为 Errorpublic static class,并初始化了该类中所有的 public const string 变量。保留 static 类的原因是我们不想在 main() 函数内创建 Error 类的实例。我们将 Error.Low 的值存储在字符串变量 output 中。这种方法更加简单易懂。关键字 struct 代替 class 关键字的结构也可以完成相同的操作。

在 C# 中使用 ToString() 函数创建字符串枚举

这是在 C# 中将枚举内的值名称转换为字符串的一种简易方法。我们可以将 ToString() 函数与枚举实例一起使用来转换枚举内的值的名称为字符串。以下代码示例向我们展示了如何使用 C# 中的 ToString() 函数创建字符串枚举。

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);
        }
    }
}

输出:

None

我们使用 C# 中的 ToString() 函数将枚举 ErrorLevel 内的名称 None 转换为字符串。这种方法易于使用,但有一些缺点。通过这种方法,我们无法像以前的示例那样获得值 Low Level Errors。在这种方法中,我们必须遵循 C# 的命名约定。仅当我们要创建仅单字字符串的枚举时,才建议使用此方法。对于其他任何事情,我们都应使用上面讨论的两种方法之一。

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

相关文章 - Csharp String

相关文章 - Csharp Enum