编码:使用Struct作为硬编码值的DataUtility / Library(常量)

时间:2010-09-11 18:35:55

标签: c# struct constants

将Structs用作硬编码值的数据库是否可以?有时我们无法避免硬编码,尽管最好把它放在像xml文件或数据库表这样的东西上,但有时由于某些原因它是不可能的。

 public struct BatchStatus
 {
    public const string Submitted = "0901XX";
    public const string Active = "62783XY";
    public const string Inactive = "S23123";
 }

然后我像这样使用它

 switch (batchStatus) // enums doesnt work in switch case
{
     case BatchStatus.Submitted:
         new Batch().Submit(); break;
    case BatchStatus.Inactive:
        new Batch1().Activate(); break;
    case BatchStatus.Active
        new Batch2().Deactivate(); break;

}

1 个答案:

答案 0 :(得分:2)

如果您使用的是C#2.0及更高版本,则应该使用静态类。在C#2.0之前,您可以使用一个类,只需添加一个private默认构造函数,以确保该类从未实例化。

C#2.0及更高版本

public static class BatchStatus
{
  public const string Submitted = "0901XX";
  public const string Active = "62783XY";
  public const string Inactive = "S23123";
}

C#1.0 - 1.2

public class BatchStatus
{
  public const string Submitted = "0901XX";
  public const string Active = "62783XY";
  public const string Inactive = "S23123";

  private BatchStatus()
  {

  }
}