如果我双击一个新的 winform 按钮uxHelloButton
,则会出现以下内容:
private void uxHelloButton_Click(object sender, RoutedEventArgs e)
为什么默认是私有的?如果我删除私有并保留以下内容,它仍然可以正常工作:
void uxHelloButton_Click(object sender, RoutedEventArgs e)
添加此范围是否可以避免潜在问题?
问题是:您为什么要使其易于访问?一般来说,最好为每个元素提供所需的最严格的权限。如果你不这样做,你就冒着一些类可以在不应该调用这个函数的风险。
即使从 OOP 的角度来看,这也必须是私有的。此函数是表单用于处理按钮单击的回调。它并不意味着由您或任何外部类显式调用。
如果要调用此方法,请改用以下内容:
private void uxHelloButton_Click(object sender, RoutedEventArgs e)
{
SomethingToDo(...);
}
protected void SomethingToDo(...)
{
....
}
Ps:C#中实例方法的默认作用域是私有的,你没有通过删除private关键字来扩展它。
AFAIK,这些事件仅由该表单的实例调用。这在课堂外无法使用。所以它是这样设计的。