2012-06-06 44 views
0

如果我雙擊了新的winform按鈕uxHelloButton則出現以下內容:爲什麼表單的工具事件是默認的私有?

private void uxHelloButton_Click(object sender, RoutedEventArgs e) 

爲什麼默認的專用? 如果我刪除私​​人和離開跟隨它仍然能正常:

void uxHelloButton_Click(object sender, RoutedEventArgs e) 

是否加入此範圍內的避免潛在的問題?

+1

如果刪除了「私人」這是完全一樣的東西,因爲[類成員和結構成員,包括嵌套類和結構的訪問級別,默認是私人(http://msdn.microsoft.com/ EN-US /庫/ ms173121.aspx)。所以私人只是爲了清晰而添加。 –

回答

1

的問題是:爲什麼你想使它訪問? 在一般情況下,最好是給每一個元素,需要最嚴格的權限。 如果你不這樣做,你正在服用某些類可以調用這個函數,他們不應該的風險。

即使從一個面向對象的角度來看,這必須是私有的。該函數是表單用於處理按鈕單擊的回調。這並不意味着被你或任何外部類明確地調用。

如果要調用這個方法,請使用以下代替:

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

PS:在C#中的默認範圍爲實例方法是私有的,你沒有通過刪除私人關鍵字展開。

0

據我所知,這些事件是由只有形式的實例調用。這是不能在課外使用的。所以它就是這樣設計的。

相關問題