Статический класс и статические переменные лучшие практики
Я использую WinForms. В этом приложении я могу показать РЕЖИМ ПРОСМОТРА и РЕЖИМ РЕДАКТИРОВАНИЯ, оба эти режима будут отображать разные панели (Panel ViewPanel
, Panel EditPanel
).
Они оба созданы только ОДИН РАЗ, и оба содержат другие элементы управления.. (Label
s, 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 ответ
Если вы не создаете объект класса, и этот класс содержит некоторые константы для глобального использования, вы должны создать статический класс. Если объект класса не нужен, ваш выбор должен быть статическим классом.
Если ваши переменные связаны только с некоторыми функциями, вы должны создать класс со статическими переменными. Иногда вы хотите создать объекты класса и поделиться некоторой информацией среди этих объектов. В этом случае лучше всего создать нестатический класс со статическими общими переменными.