【问题标题】:Class design: Access two keys as properties using a constant?类设计:使用常量访问两个键作为属性?
【发布时间】:2014-08-14 20:36:33
【问题描述】:

现在:

2 个类,每个类都具有相同的常量名称,例如ERR123

class1 得到了public const int ERR123 = 123;

class2 得到了public const string ERR123 = "Error 123, something went wrong.";

所以我这样称呼它

int code = class1.ERR123;
string message = class2.ERR123;

我不喜欢这种方法,因为当我添加/更改某些内容时,我需要复制常量名称并触摸 2 个文件。

我想这样访问它:

int code = Errors.Subcategory1.ERR123.Code; 
string message = Errors.Subcategory1.ERR123.Message;

声明不应该那么不方便。这可能吗?也许使用一些反射魔法?

【问题讨论】:

    标签: c# reflection .net-3.5 class-design


    【解决方案1】:

    要使用描述来描述消息代码,您可以使用带有描述属性的枚举。 Get Enum from Description attribute

    【讨论】:

      【解决方案2】:

      为什么要让事情变得比它需要的更复杂?

      public class Errors
      {
           public static class IntegerErrors {
                public const string ERR123 = 123;
            }
      
           public static class StringErrors {
               public const string ERR123 = "Error 123, something went wrong.";
           }
      }
      
      ...
      
      int i_value = Errors.IntegerErrors.ERR123;
      string s_value = Errors.StringErrors.ERR123;
      

      【讨论】:

      • 这或多或少是我现在所拥有的。
      猜你喜欢
      • 1970-01-01
      • 2016-07-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多