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
我们声明了一个名为 Error
的 public 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# 的命名约定。仅当我们要创建仅单字字符串的枚举时,才建议使用此方法。对于其他任何事情,我们都应使用上面讨论的两种方法之一。
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
- C# 将字符串转换为枚举类型
- C# 中将整形 Int 转换为字符串 String
- 在 C# 中的 Switch 语句中使用字符串
- 如何在 C# 中把一个字符串转换为布尔值
- 如何在 C# 中把一个字符串转换为浮点数
- 如何在 C# 中编写多行字符串文字