[解決済み] なぜC#はデフォルトで非仮想的なメソッドを実装しているのか?
2022-12-01 18:47:17
疑問点
Javaと異なり、なぜC#はデフォルトでメソッドを非仮想関数として扱うのでしょうか? 他の可能性のある結果ではなく、パフォーマンスの問題である可能性が高いのでしょうか?
私は、既存のアーキテクチャが引き出しているいくつかの利点について、Anders Hejlsberg の段落を読んだことを思い出しました。しかし、副作用についてはどうでしょうか。デフォルトで非仮想的なメソッドを持つことは、本当に良いトレードオフなのでしょうか?
どのように解決するのか?
クラスは
設計されています。
でなければなりません。メソッドを持つ
virtual
をデフォルトで持つということは、クラス内のすべての関数を抜き出して別の関数に置き換えることができるということであり、これは本当に良いことではありません。多くの人は、クラスは本来
sealed
であるべきだと考えている人もいます。
virtual
メソッドもまた、若干のパフォーマンスの影響を持つ可能性があります。しかし、これは主な理由ではないでしょう。
関連
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み] この2回(1927年)を引き算すると、なぜおかしな結果になるのでしょうか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] serialVersionUIDとは何ですか、またなぜそれを使用する必要がありますか?
-
[解決済み] プライベートメソッド、フィールド、インナークラスを持つクラスをテストするにはどうすればよいですか?
-
[解決済み] Javaにおける "implements Runnable "と "extends Thread "の違いについて
-
[解決済み] 抽象メソッドと仮想メソッドの違いは何ですか?
-
[解決済み] C++で仮想関数が必要な理由とは?
-
[解決済み] コンストラクタ内の仮想メンバー呼び出し
-
[解決済み】なぜJavaの+=, -=, *=, /=複合代入演算子はキャスティングを必要としないのですか?
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み】C#はJavaのcharAt()と同等?)
-
[解決済み】トランスポート接続からデータを読み取れない:既存の接続は、リモートホストによって強制的に閉じられました。
-
[解決済み】プロジェクトビルド時のエラー。エディタでスクリプトにコンパイルエラーがあるため、Playerのビルドにエラーが発生する
-
[解決済み] [Solved] アセンブリ System.Web.Extensions dll はどこにありますか?
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み] [Solved] .NETでスレッドの終了を待つには?
-
[解決済み】「namespace」なのに「type」のように使われる。
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。