处理需要字符串的枚举的好方法是什么

Mat*_*wdy 2 c# enums

我很确定一个枚举不是我想要的.我想要的是一个命名项目列表

CustomerLookup = "005",
CustomerUpdate = "1010"
Run Code Online (Sandbox Code Playgroud)

"005"和"1010"不是我的值,它们是我需要发送给我无法控制的第三方的值.其中有近500个.我只是希望我的代码看起来不错.

代替

SendRequest("005");
Run Code Online (Sandbox Code Playgroud)

我宁愿看

SendRequest(RequestType.CustomerLookup);
Run Code Online (Sandbox Code Playgroud)

任何人都有任何自我记录的想法,而不会在代码中疯狂吗?

Jon*_*eet 8

有什么不妥:

public static class RequestType
{
     public static readonly string CustomerLookup = "005";
     // etc
}
Run Code Online (Sandbox Code Playgroud)

要么

public static class RequestType
{
     public const string CustomerLookup = "005";
     // etc
}
Run Code Online (Sandbox Code Playgroud)

?或者如果您想要更多类型安全:

public sealed class RequestType
{
     public static readonly RequestType CustomerLookup = new RequestType("005");
     // etc

     public string Code { get; private set; }

     private RequestType(string code)
     {
         this.Code = code;
     }
}
Run Code Online (Sandbox Code Playgroud)

这基本上会给你一组固定的值(构造函数是私有的,因此外部代码不能创建不同的实例),你可以使用该Code属性来获取相关的字符串值.