2012-06-21 70 views
0

我正在閱讀Petzold的免費(.PDF)WP7書籍,他說他總是在事件處理程序中將「EventArgs e」更改爲「EventArgs args」(這對我來說很有意義,因爲「e」有時與我想要命名Exception對象);但他也表示他刪除了有時會自動添加的輔助功能修飾符。刪除方法的輔助功能修飾符的目的是什麼?

我不知道他爲什麼這樣做,以及:

1) Should I adopt the same practice 
2) If that's a better way (Petzold is no wet-behind-the-ears greenhorn), why doesn't MS create these methods that way by default? 

回答

2

(我假設這是去除方法的private訪問修飾符的問題,如果它移除(說)public那麼這一個語義變化,和另一個問題。)

這絕對是個人喜好的問題。我使用了以支持在默認情況下刪除訪問修飾符,但現在我更願意明確指出。離開它隱含的

優點:(寫書,這很可能與此有關時,重要的)

  • 作爲默認

    • 減少混亂始終是「最私人,你可以明確地表示:」它使它更加明顯,其成員已被「提升」到具有更廣泛的訪問擺明的

    優點:

    • 讀者不知道語言是否完全無疑
    • 它引入了一個更多的心理提醒,你需要積極思考這個問題。 (我敢肯定,人們經常會以默認的方式離開,除此之外沒有進一步的考慮 - 除了缺省設置,我發現C#中相對較少的虛擬方法,只是因爲默認設置。)
    • 假設您遵循心理提示,它會顯示讀者這是一個蓄意的決定。

    如果你想要一個「呼籲權威」,你可能有興趣知道米格爾德伊卡薩贊成(強烈)前一種方法,埃裏克利珀特贊成後者。

  • +0

    所以它在C#巨人的戰鬥中是2-2,在拔河的一邊是Petzold和de Icaza,另一邊是Lippert和你自己。 –

    +0

    安德斯H會照顧體重嗎? –

    +0

    順便說一句,你在這裏的答案(在StackOverflow上)讓我把你的「C#深度」書放在我的「購買書籍」列表的頂部。 –