为什么表单的工具事件是默认的私有?

时间:2012-06-06 07:07:56

标签: c# winforms scope

如果我双击新的winform按钮uxHelloButton,则会出现以下内容:

private void uxHelloButton_Click(object sender, RoutedEventArgs e)

为什么默认为私有? 如果我删除私​​人并留下以下内容仍然可以正常工作:

void uxHelloButton_Click(object sender, RoutedEventArgs e)

这个范围的增加是否可以避免潜在的问题?

2 个答案:

答案 0 :(得分:1)

问题是:为什么要让它可以访问? 通常,最好给每个元素,所需的限制性最强的权限。 如果你不这样做,你冒的是一些类可以调用这个函数的风险。

即使从OOP的角度来看,这也必须是私人的。此函数是表单用于处理按钮单击的回调函数。它并不意味着由您或任何外部类明确调用。

如果要调用此方法,请改用以下内容:

private void uxHelloButton_Click(object sender, RoutedEventArgs e)
{
    SomethingToDo(...);
}
protected void SomethingToDo(...)
{
    ....
}

Ps:实例方法的C#中的默认范围是私有的,您没有通过删除private关键字来扩展它。

答案 1 :(得分:0)

AFAIK,这些事件仅由该表单的实例调用。这不是课外的可用。所以就是这样设计的。