我使用WinForms。在这个应用程序中,我可以显示视图模式和编辑模式,这两种模式将显示不同的面板(Panel ViewPanel
,Panel EditPanel
)。
它们都只创建了ONCE,它们都包含其他控件..(Label
s,TextBox
es。。
但ViewPanel
和EditPane
l并未同时显示,因此我需要删除一个并添加另一个,以便用户可以看到它。
在其他课程中我有功能&与“编辑”模式相互作用并可能更改模式的事件,因此我需要显示或删除这些面板。
我创建了一个面板(WrapPanel
)作为其父级,因此我将ViewPanel
或EditPanel
添加到ControlCollection
WrapPanel
}}。因此,如果我写的话,删除面板很容易:
WrapPanel.Controls.Clear();
它将轻松删除显示的任何面板,但为了将所需的面板(ViewPanel
或EditPanel
)添加到包装中,我需要从其他类(具有事件和函数)引用它可能需要将显示从“编辑”更改为“查看”。)
因此,将这些面板声明为“静态”似乎可以轻松地从任何类中引用这些面板。
[我在一些论坛上阅读以避免制作静态类,不确定原因,我想知道这是否与静态变量有关。]
最佳做法是在Form1
?
('public partial class Form1'是所有WinForms应用程序的默认开放类)
或者,制作另一个(非静态)课程是更好的做法 - 例如:
public class VarClass
并将Vars声明为:
public Static Panel ViewPanel;
public Static Panel EditPanel;
或制作静态类的第三个选项 - 例如:
public static class StaticVarClass
并在那里声明变量(也使用'public static'关键字)
表演的最佳做法是什么和/或什么是专业和/或各自的意见?
答案 0 :(得分:1)
如果不创建类的对象,并且此类包含一些全局使用的常量,则应创建静态类。如果不需要类的对象,则您的选择应该是静态类。
如果您的变量仅与某些功能相关,则应使用静态变量创建类。有时您想要创建类的对象并在这些对象之间共享一些信息。对于这种情况,最好的方法是使用静态共享变量创建非静态类。