制作 c# Windows 表单工具 public

Making c# Windows form tool public

我只是想知道制作 Windows 表单工具(如文本框、按钮等)public 是否安全。它在 Designer.cs 文件中显示为私有。我将其更改为 public,它仍然有效,但我很担心,因为有时即使它有效,我也不应该乱用默认设置。

将控件上的修饰符更改为 public 是完全安全的——就像更改任何其他 class 上的字段或属性或方法一样public 的私有将是 安全的 。您不会突然发现某些东西损坏、失败、锁定等。这只是意味着现在可以从您的表单外部访问该控件。

但是,控件的默认设置 private 有助于鼓励更好的代码设计。如果您发现需要制作一个控件 public,那么您可能没有很好地将我们对表单的关注与应用程序的其余部分分开——或者至少没有遵循一般社区认为好的模式.

例如,如果您需要修改标签的文本——您不需要将标签本身公开为 public。您可以选择制作一个 public 属性 表单来设置私有标签的文本值。例如,如果您的标签是用来表示表格的副标题:

public string Subtitle { 
   get { return label1.Text; }
   set { label1.Text = value; }
}

更好的是,您的表单可以监听来自某些中间体的事件或通知 object 并根据这些通知在内部更新标签:

private void someobject_SubtitleChanged(object sender, SubtitleChangedEventArgs args) {
   label1.Text = args.Subtitle;
}