[解決済み] 抽象クラスの命名規則
質問
一時期、Microsoft が推し進めたガイドラインでは、抽象クラスには "Base" という接尾辞を付けて、抽象クラスであることをわからなくしていたことをはっきりと記憶しています。そのため、次のようなクラスがあります。
System.Web.Hosting.VirtualFileBase
,
System.Configuration.ConfigurationValidatorBase
,
System.Windows.Forms.ButtonBase
とか、もちろん
System.Collections.CollectionBase
.
しかし、最近、フレームワークの多くの抽象クラスが、この慣習に従っていないように見えることに気づきました。たとえば、以下のクラスはすべて抽象クラスですが、この規約には従っていません。
-
System.DirectoryServices.ActiveDirectory.DirectoryServer
-
System.Configuration.ConfigurationElement
-
System.Drawing.Brush
-
System.Windows.Forms.CommonDialog
これは、私が数秒のうちに作り上げたものです。そこで私は、自分が狂っていないことを確認するために、公式のドキュメントが何を言っているのか調べに行きました。その結果 クラス、構造体、およびインターフェイスの名前 で、MSDN の クラスライブラリを開発するための設計指針 . 奇妙なことに、抽象クラスの名前の最後に "Base" を追加するガイドラインについての言及は見当たりません。また、このガイドラインは、Frameworkのバージョン1.1では利用できなくなりました。
では、私は失ってしまったのでしょうか?このガイドラインはこれまで存在していたのでしょうか。一言もなく放棄されただけなのでしょうか?私はこの2年間、無駄に長いクラス名を一人で作ってきたのでしょうか?
誰か私に骨を折ってください。
更新 おかしくはない。ガイドラインは存在した。 Krzysztof Cwalinaは2005年にそれについて不平を言っています。
どのように解決するのですか?
で フレームワーク設計指針 p 174に記載されています。
避ける もしクラスが公開 API で使用されることを意図している場合、ベースクラスに "Base" という接尾辞を付けることは避けてください。
また http://blogs.msdn.com/kcwalina/archive/2005/12/16/BaseSuffix.aspx
関連
-
[解決済み] Marginのプロパティ順
-
[解決済み] VS2017/2015 で .xproj ファイルを開く方法
-
[解決済み] C#の正しいバージョン番号を教えてください。
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] インターフェースと抽象クラス(一般的なOO)
-
[解決済み] Pythonの変数名や関数名の命名規則について教えてください。
-
[解決済み] AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersionの違いは何ですか?
-
[解決済み] RelativeSourceでWPFバインディングを使用するにはどうしたらいいですか?
-
[解決済み] LINQクエリでToList()とToArray()のどちらを呼び出すのが良いですか?
-
[解決済み] プライベートメソッドのユニットテストはどのように行うのですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] COMExceptionエラー80040154を修復する方法は?
-
[解決済み] スマートクライアント・ソフトウェアファクトリーの体験談
-
[解決済み] AssemblyInfo.csは何に使うのですか?
-
[解決済み] .NET Framework 4 マルチターゲティングパックがアンインストールできない
-
[解決済み] VB.NETでファイル名を一意のサフィックスに変更するには?
-
[解決済み] csilogfileは何のためにあるのですか?
-
[解決済み] 列挙型を文字列に変換する
-
[解決済み] WCFのデバッグ時にサーバーに自動的に踏み込むことができない
-
[解決済み] Visual Studioの「Any CPU」ターゲットはどういう意味ですか?
-
[解決済み] C#のクラスの命名規則。BaseClassなのかClassBaseなのかAbstractClassなのか?