0

Petzoldの無料(.PDF)WP7の本を読んでいますが、彼はイベントハンドラーで常に「EventArgse」を「EventArgsargs」に変更すると言っています(「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?
4

1 に答える 1

2

(これは、メソッドからアクセス修飾子を削除する問題だと思いprivateます。削除する場合(たとえば)public、それはセマンティックの変更であり、別の問題です。)

それは間違いなく個人的な好みの問題です。以前はアクセス修飾子をデフォルトで削除することを好みましたが、最近は明示的にすることを好みます。

暗黙的に残すことの利点:

  • 整理整頓(本を書くときに重要で、ここに関連している可能性があります)
  • デフォルトは常に「明示的に表現できる最もプライベート」であるため、どのメンバーがより広いアクセス権を持つように「プロモート」されているかがより明確になります

明示的にすることの利点:

  • 言語を完全に知らない読者は間違いなく残されます
  • それはあなたがこれについて積極的に考える必要があるというもう一つの精神的なリマインダーを紹介します。(人々は他のことを考えずにデフォルトの方法で物事を残すことが多いと確信しています-デフォルトのために、Javaと比較してC#の仮想メソッドは比較的少ないです。)
  • あなたが精神的なリマインダーに従うと仮定すると、それはこれが意図的な決定であったことを読者に示しています。

「権威に訴える」ことを望むなら、ミゲル・デ・イカザが前者のアプローチを(激しく)支持し、エリック・リッパートが後者を支持することを知りたいと思うかもしれません。

于 2012-06-21T05:27:41.297 に答える