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