我使用WinForms。在這個應用程序中,我可以顯示VIEW MODE和EDIT MODE,這兩種模式都會顯示不同的面板(Panel ViewPanel
,Panel EditPanel
)。靜態類與靜態變量的最佳實踐
它們都只創建一次,它們都包含其他控件..(Label
s,TextBox
es)。
但ViewPanel
和EditPane
l沒有顯示在同一時間,所以我需要能夠刪除一個,並添加另一個,使用戶可以看到它。
在其他類中,我有功能&與「編輯」模式交互並可能更改爲「查看」的事件,因此我需要顯示或刪除這些面板。
我已經創建了一個面板(WrapPanel
)爲它們的母體,所以我通過將其添加到WrapPanel
的ControlCollection
顯示ViewPanel
或EditPanel
。因此,移除面板是容易的,如果我寫:
WrapPanel.Controls.Clear();
它將容易地除去任何一個面板被示出,但爲了所需的面板(ViewPanel
或EditPanel
)添加到渦卷我需要從其他引用它類(具有可能需要將顯示從「編輯」更改爲「查看」的事件和功能)。
因此,將這些面板聲明爲「靜態」似乎可以很容易地從任何類引用這些面板。
[我在一些論壇讀避免靜態類,不知道到底爲什麼,我不知道這屬於靜態變量太多。]
是它只是聲明這些變量爲Form1
靜態變量的最佳實踐?
(「公共部分Form1類」是所有的WinForms應用程序的默認打開類)
或者是更好的做法,使另一個(非靜態)類 - 例如:
public class VarClass
,並宣告瓦爾那裏:
public Static Panel ViewPanel;
public Static Panel EditPanel;
或第三個選項,以使靜態類 - 例如:
public static class StaticVarClass
有聲明變量(也與公共靜態「關鍵字)
什麼是性能的最佳實踐和/或者各有什麼親的&反對的?
您需要了解靜態的含義。這些情況並不相同,甚至可能不是你想要的。 –
如果你正在拍攝OOP代碼,最好的做法是根本沒有任何「靜態」。 **尤其是**不可變的公共靜態字段。 –
此外,我不建議您詢問正反兩面的「最佳實踐」,而是建議您從正在開發的項目中抽取一些真實的工作代碼,並將其用於[codereview。]的同行評審。 se] - 如果你濫用靜態和公共領域,審稿人會告訴你一切你夢寐以求知道的爲什麼這是一個壞主意。 –