C#コミュニティは、「I」接頭辞をユビキタスに使用して、最も経験の浅いプログラマーでも使用することを知っているインターフェイスを示しています。
列挙型、抽象クラス、または構造体のプレフィックスを付けないのはなぜですか(おそらく "E"、 "A"、 "S"がそれぞれ付いている可能性があります)?
たとえば、すべての抽象クラスに「A」のマークを付けた場合、それはその型に関する貴重な情報を提供しますが、推測はできるかもしれませんが、すぐにはわかりません。
私はこの変更を主張するのではなく、なぜ私たちがこのようにしていないのかを理解しようとしているだけであることに注意してください。
このスレッド プレフィックス「I」を使用する理由は回答しますが、他のプレフィックスを使用しない理由は回答しません 。
インターフェースの命名規則の要点は、クラスが実装するインターフェースを何と呼ぶかについて、すばやく簡単に判断できるようにすることです。あなたがFrobnicator
を持っているが、デカップリングまたは何らかの理由でインターフェースを宣言する必要がある場合、それをIFrobnicator
と呼ぶ決定は意識的な思考を必要とせず、これは良いことです。
同じ問題は、名前を付ける他の構成には当てはまりません。列挙型と構造体は便利ですが、名前自体に加えてsecond、短く、透明で、明らかに関連する名前を見つける必要はありません。したがって、列挙型または構造体の名前に「E」を付ける必要はありません。
(抽象クラスはインターフェイスにいくらか似ています。何かを実行するために2番目の具体的なクラスを提供する必要があるため、「A」で始まる規則を取得している可能性がありますが、何らかの理由で取得していません。私は推測することを許されています、私は「私」が特に狭い手紙であることはそれと何らかの関係があったかもしれないと思います)
私はそれがあまり使われていないと思います:
要するに:一般に、付加価値はコストに加算されません。
その最後の箇条書きといくつかの解釈から、結論を出すことができます。システムハンガリー語(プレフィックスタイプ)は不良であるため、使用しないでください。 Apps Hungarian(プレフィックスの種類)で使用されています。
それをあなたの質問に戻しますあなたの提案された表記はApps Hungarianの形式だと思います。付加価値がコストに追加され、コードベースに一貫してそれを実装すると感じれば、それは問題ありません。ただし、プロジェクトごとに考慮する必要があるため、これは一般的なルールではありません。
私は人々がそれがインターフェースに対してより頻繁に重要であったことに気づいたと思います、そしてそれがインターフェースの一般的なルールになっている理由です。