У меня есть класс, который нужно только инициализировать один раз в моем коде, но функция, в которой он находится, вызывается несколько раз, и класс инициализируется снова и снова. Этот класс нужно вызвать только один раз, потому что данные, которые передаются в него, никогда не меняются, и это пустая трата, чтобы мой код повторно инициализировал его более одного раза. Я хочу, чтобы мой код проверял, что этот класс уже инициализирован и может получить необходимую информацию, которая уже была сгенерирована. Моя первая мысль заключалась в том, чтобы дизайн на основе шаблона Singleton, но я не думаю, что это необходимо, так как этот класс не нужен нигде в моем коде. Что такое простой способ сделать что-то подобное?Как избежать повторной инициализации класса, который никогда не изменяется?
1
A
ответ
2
Сделать его статическим. Класс будет инициализирован при первом использовании ...
1
A static class - один из подходов.
public static class MyClass
{
public static bool IsInited { get; private set; }
public static void Init(...)
{
...
IsInited = true;
}
}
Если Init
не имеет аргументов, например. может установить все свойства самостоятельно, тогда вы можете использовать static constructor вместо Init
. В основном конструктор будет называться в первый раз, когда другой код обращается к свойству.
public static class MyClass
{
public static bool IsUnix { get; private set; }
static MyClass()
{
IsUnix = Environment.NewLine == '\n';
}
Смежные вопросы
- 1. Как избежать повторной инициализации переменной при использовании рекурсии в C++?
- 2. Как избежать повторной инициализации переменной в Live Wallpaper
- 3. Как избежать повторной специализированной специализации?
- 4. C повторной инициализации массива
- 5. Как избежать повторной оценки EL
- 6. Контроллер доступа без повторной инициализации
- 7. Как избежать двухэтапной инициализации
- 8. Как избежать повторной спутниковой информации в списке?
- 9. Предотвращение повторной инициализации при перемещении элемента реакции
- 10. Сложность повторной инициализации скроллера jscrollpane
- 11. jQuery Параметры повторной инициализации DataTable
- 12. Избегайте повторной инициализации критического раздела
- 13. Lazy <T> метод повторной инициализации?
- 14. Остановка переменной класса после повторной инициализации при вызове снова?
- 15. Rails 3.2 session_id никогда не изменяется
- 16. Как избежать сообщения «Метод никогда не используется»?
- 17. Написание класса/структуры, который часто изменяется
- 18. Вызов конструктора для повторной инициализации объекта
- 19. PHP PDO Firebird charset никогда не изменяется
- 20. Как проверить метод, который никогда не возвращается?
- 21. Как избежать повторной проверки флажка внутри репитера
- 22. статический код инициализации переменной никогда не называется
- 23. Меню, прикрепленное к mx.controls.PopUpButton никогда не изменяется
- 24. ввод scrollLeft никогда не изменяется в IE11
- 25. UICollectionViewCell подкласс инициализации никогда не запускать
- 26. Размер ползунка изменяется при инициализации
- 27. подклассов класса, который только разоблачить удобство инициализации
- 28. Альтернативный рабочий процесс для использования ноутбука jupyter (также как избежать повторной задержки инициализации)?
- 29. Как избежать двойной инициализации пружины?
- 30. Лучший способ повторной инициализации скомпилированной функции Anano
Как насчет статического класса – Rohit