删除方法的辅助功能修饰符的目的是什么?

时间:2012-06-21 03:52:50

标签: windows-phone-7 visibility access-modifiers eventargs

我正在阅读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?

1 个答案:

答案 0 :(得分:2)

(我假设这是从方法中删除private访问修饰符的问题。如果它正在删除(比如说)public那么这是语义更改,和另一件事。)

这绝对是个人喜好的问题。我使用来支持在默认情况下删除访问修饰符,但这些天我更喜欢显式。

隐藏它的好处:

  • 较少混乱(在写书时很重要,这可能与此相关)
  • 由于默认值始终是“您可以明确表达的最私密”,因此更明显地将哪些成员“提升”以获得更广泛的访问权

明确的好处:

  • 毫无疑问,完全不懂语言的读者
  • 它还引入了一个精神提示,你需要积极思考这个问题。 (我确信人们经常以默认的方式留下东西而不进一步考虑 - 我认为C#中的虚拟方法与Java相比相对较少,只是因为默认方法。)
  • 假设您遵循心理提醒,它会向读者显示这是一个慎重的决定。

如果你想要“诉诸权威”,你可能有兴趣知道Miguel de Icaza赞成(激烈地)前一种方法,而Eric Lippert则赞成后者。