如何在C#中获取枚举的字符串表示?ToString()的问题
大家好!我是一名初学C#的开发者,在处理枚举时遇到了问题。我有这样的代码:
```csharp
public enum StatusCode
{
Success = 200,
NotFound = 404,
ServerError = 500
}
StatusCode status = StatusCode.Success;
Console.WriteLine(status); // 输出 "Success"
```
乍一看一切正常——默认的ToString()会输出常量名。但当我尝试在更复杂的场景中使用它时,比如日志记录或保存到数据库,就出现了问题。我需要得到像"200"这样的字符串(数值),而不是"Success"。此外,我希望字符串表示更灵活:例如包含空格(如"Not Found"而不是"NotFound")或支持本地化。
我尝试了不同的方法:
```csharp
// 尝试1:直接使用ToString()
string s1 = status.ToString(); // "Success" - 不是我要的
// 尝试2:转换为int
string s2 = ((int)status).ToString(); // "200" - 正确但不够灵活
```