Локализация длинного списка описаний

1

У меня есть класс с дюжиной строк типа Sentence1, Sentence2 и т.д. Они содержат описательную часть, которую я хочу локализовать. Правильно ли мое решение (я имею в виду не только работу, но и видимый запах кода).

[Serializable]
public class ResultType : ISerializable, IEquatable<ResultType>
{
    public int IDResultType { get; set; }
    public string ResultName { get; set; }
    public string ResultSymbol { get; set; }
    public bool IsTeam { get; set; }
    public string Group { get; set; }

public static ResultType Sentence1 = new ResultType(1, Resource.Sentence1, "FT1");

public static ResultType Sentence2 = new ResultType(2, Resource.Sentence2, "FT2");

public static ResultType Sentence3 = new ResultType(3, Resource.Sentence3, "FT3");
}
Теги:

1 ответ

0
Лучший ответ

Недостатки:

  • (Если неизменный.) Язык выбирается при запуске и не может быть изменен позже.
  • (Если изменено.) Инкапсуляция нарушена, любой может изменить статические экземпляры и их свойства.
  • Выбор языка непредсказуем. Когда статические экземпляры создаются таким образом, среда выполнения может выбрать вызов конструкторов статических полей перед установкой языка. (Может быть исправлено путем добавления явного статического конструктора.)

В простом приложении этого может быть достаточно. В более сложном приложении лучше добавить статические свойства. Если мусор становится проблемой, значения могут быть кэшированы.

  • 0
    Спасибо за ответ, но я не могу полностью понять это. Что относится к прилагательному изменчивому?
  • 0
    Смотрите Неизменный объект . ResultType может быть изменен извне любым кодом, также могут быть изменены его статические поля.
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню