このような状況は、一部の人にとっては珍しいことではありません。クラスに追加する機能がありますが、そのクラスの完全な名前 (*) が、System
名前空間内のクラスの 1 つ、または自分のものではない他の名前空間/クラスによって取得されていますが、あなたはusing
/ import
ing です。
(*)完璧とは、小さくて簡潔で明確な名前を意味します。
たとえばUtils
、Diagnostics
(主にデバッグ ユーティリティ) クラスとクラスを持つDrawing
クラスがあります。私はできた:
DrawingUtils
クラスとクラスがありますDiagnosticsUtils
が、それは悪い構造のようなにおいがします。- シソーラスを選んで、もっと悪い、長い、またはぎこちない名前で終わります。
- 英語ではなく母国語でクラス名を書いてください。
- StackOverflow の賢い人に聞いてください。
オプション1〜3は有望ではないと思います:(
編集:
私の選択した答えは問題に明確に対処していないため (私もそうしていません)、同じ状況に直面している人々に推奨することは、次のことを自問することです:競合する BCL クラス/名前空間を頻繁に使用しますか? いいえの場合は、名前が競合するようにします (Diagnostics で行ったように)。はいの場合は、クラス/名前空間の可能性を制限する単語を追加してください。
実際には、これは次のことを意味します:
"Drawing"
: 描画するもの。:のみに
"MyCustomControlDrawing"
描画されるもの。例: .MyCustomControl
"WidgetDrawing"
EDIT2:
次回は、Extension Methods ( Lawmmower提供) を検討する別のソリューションを紹介します。