Кодирование: использование Struct в качестве DataUtility / Library для значений жесткого кода (констант) - PullRequest
2 голосов
/ 11 сентября 2010

Можно ли использовать 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 Ответ

2 голосов
/ 11 сентября 2010

Если вы используете 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()
  {

  }
}
...