Статический класс и статические переменные лучшие практики

Я использую WinForms. В этом приложении я могу показать РЕЖИМ ПРОСМОТРА и РЕЖИМ РЕДАКТИРОВАНИЯ, оба эти режима будут отображать разные панели (Panel ViewPanel, Panel EditPanel).

Они оба созданы только ОДИН РАЗ, и оба содержат другие элементы управления.. (Labels, TextBoxэс).

Но ViewPanel а также EditPaneМеня не показывают одновременно, поэтому мне нужно иметь возможность удалить одну и добавить другую, чтобы пользователь мог ее увидеть.

В других классах у меня есть функции и события, которые взаимодействуют и могут изменять режим с "Редактировать" на "Вид", поэтому мне нужно будет показать или удалить эти панели.

Я создал панель (WrapPanel) быть их родителем, и поэтому я отображаю ViewPanel или же EditPanel добавив его в ControlCollection из WrapPanel, Так что снять панель легко, если я напишу:

WrapPanel.Controls.Clear();

Он легко удалит любую отображаемую панель, но для того, чтобы добавить нужную панель (ViewPanel или же EditPanel), чтобы обернуть мне нужно ссылаться на него из других классов (которые имеют события и функции, которые могут потребоваться изменить отображение с "Редактировать" на "Вид").

Таким образом, объявление этих панелей где-то как "статическое" облегчает ссылки на эти панели из любого класса.

[Я читал на некоторых форумах, чтобы избежать создания статических классов, не знаю точно, почему, и мне интересно, относится ли это и к статическим переменным.]

Лучше всего просто объявить эти переменные как статические переменные в Form1?

("открытый частичный класс Form1" является классом открытия по умолчанию для всех приложений WinForms)

Или лучше создать другой (нестатический) класс, например:

public class VarClass

и объявить Vars там как:

public Static Panel ViewPanel;
public Static Panel EditPanel;

Или третий вариант сделать статический класс - например:

public static class StaticVarClass

и объявлять переменные там (также с ключевым словом public static)

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

1 ответ

Решение

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

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

Другие вопросы по тегам