Я использую WinForms. В этом приложении я могу показать РЕЖИМ VIEW и EDIT MODE, оба режима будут отображать другую панель (Panel ViewPanel
, Panel EditPanel
).Статический класс по сравнению с статическими переменными лучшая практика
Они оба созданы только один раз, и оба они содержат другие элементы управления .. (Label
s, TextBox
es).
Но ViewPanel
и EditPane
l не отображаются одновременно, поэтому мне нужно уметь их удалить и добавить, чтобы пользователь мог его увидеть.
В других классах у меня есть функции & событий, которые взаимодействуют и могут изменять режим от «Редактировать» до «Вид», поэтому мне нужно будет отображать или удалять эти панели.
Я создал панель (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
и объявить переменные там (также с «публичным статическим» ключевым словом)
Что является лучшей практикой для выполнения и/или какие профи & кона-х каждый из них?
Вам нужно прочитать, что на самом деле означает статичность. Эти ситуации не эквивалентны и могут даже не быть тем, что вы намереваетесь. –
Если вы снимаете код ООП, наилучшей практикой было бы не иметь ничего «статического» вообще. ** Особенно ** не изменяемые публичные статические поля. –
Кроме того, вместо того, чтобы просить «за» и «против» и «что лучше всего», я предлагаю вам взять какой-то реальный рабочий код из проекта, над которым вы работаете, и выставить его для рецензирования на [codereview. se] - если вы злоупотребляете «статическими» и публичными полями, рецензенты расскажут вам все, о чем вы когда-либо мечтали узнать о том, почему это плохая идея. –