C # Статический словарь объявить и инициализировать в абстрактном классе .NET 2.0 - PullRequest
2 голосов
/ 12 октября 2011

У меня есть абстрактный класс, и я хотел бы добавить статический словарь для кодов ошибок. Я попробовал следующее:

public abstract class Base
{
   ...
   protected static readonly Dictionary<int, string> errorDescriptions = new Dictionary<int, string>()
   {
      { 1, "Description1"},
      { 2, "Description2"},
      ...
    };
   ...
}

но потом обнаружил, что это было реализовано в .NET 3.0; Я использую 2.0. Я посмотрел вокруг, и некоторые другие предложили добавить пары в конструктор, но это абстрактный класс.

Как я могу / должен заполнить словарь?

Спасибо.

1 Ответ

7 голосов
/ 12 октября 2011
public abstract class Base
{
   ...
   protected static readonly Dictionary<int, string> errorDescriptions;
   // Type constructor called when Type is first accessed.
   // This is called before any Static members are called or instances are constructed.
   static Base ()
   {
      errorDescriptions = new Dictionary<int, string>();
      errorDescriptions[1] = "Description1";
      errorDescriptions[2] = "Description2";
   }
}
...