Avatar ·

如何在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" - 正确但不够灵活 ```