2

クラス メンバーは C# ではデフォルトでプライベートであり、最良のコードはまったくコードを書かないことなので、慣用的な C# はprivate混乱を避けるためにプライベート メンバーの宣言を省略しますか? それとも明示的である方が一般的ですか?

明確にするために、私はこの問題に関するすべての人の意見を尋ねているわけではありませんが、確立されたコード ベースではより一般的です (私は C# にかなり慣れていません)。

4

3 に答える 3

4

なぜ明示的に「プライベート」と書くのですか?. それらを非公開として明示的に宣言するのがベストプラクティスだと思います。あなたのコードは、特に他の人にとってより読みやすくなります...主な理由は、上記の質問で受け入れられた回答が示すように、すべての言語でプライベートがデフォルトのアクセスレベルではないためです。

于 2013-07-30T13:46:35.733 に答える
4

個人的には、private他の誰かがコードを拾い上げて間違っている可能性があると仮定した場合、またはスコープ レベルを変更することにした場合 (メンバーに対してスコアを付けるのを忘れたと考えて) に備えて、それらを として宣言します。

また、他の一部の言語では既定の実装が異なる場合があるため、チームの新しいメンバーが初めて C# を使用する場合は、明示的な減速が役立ちます。

Safari Books の C# のベスト プラクティスでこれを見つけました。

すべての型とメンバーに対して常にスコープ キーワードを明示的に使用します。

理由: Visual Basic 型メンバーの既定のスコープはパブリックですが、C# の既定のスコープはプライベートです。scope キーワードを省略すると、他の言語に精通している開発者が混乱する可能性があります。

于 2013-07-30T13:48:10.677 に答える
1

ほとんどの C# スタイル ガイドは、暗黙的よりも明示的を好むようです。たとえば、任意の型 (クラス、インターフェイス、フィールド、プロパティ、メソッドなど) のオブジェクトがアクセス修飾子なしで宣言されている場合、 StyleCopはほぼ常にエラーを出します。

private私の個人的な好みは、メンバーが非公開であることを一目で簡単に確認できるため、常にキーワードを含めることです. アクセス修飾子がない場合、私の脳は、最初にアクセス修飾子がないことを識別し、次に修飾子 = がないことを覚えておく必要がある 2 段階のプロセスを実行する必要がありますprivate

さらに複雑なのは、たとえばクラスではアクセス修飾子 = がないという事実ですinternal。この点に関して、フィールド/プロパティ/メソッドとクラス/インターフェイスが異なる必要がある理由は理解していますが、アクセス修飾子がないためにオブジェクトの種類によって意味が変わるという事実は嫌いです。

しかし、もちろん、これはすべて非常に議論の余地があります。

于 2013-07-30T13:46:49.250 に答える