C# で静的クラスを継承できないのはなぜですか?
実際には静的クラスを階層構造で編成したいにもかかわらず、C# ではそのようなクラスの継承。この制限は、言語作成者の設計上の考慮事項から生じています。
C# 言語 PM の Mads Torgersen 氏によると、次の理由から静的クラスの継承は保証されません。
さらに、.NET の継承はインスタンス上でのみ動作します。ベースのメソッド。静的メソッドはインスタンス レベルではなく型レベルで定義されているため、オーバーライドに必要な仮想テーブルが不足しています。静的メソッドの呼び出しは、最初の引数として現在のインスタンスを暗黙的に渡す必要がないため、インスタンス メソッドとも異なります。これにより、コンパイラは継承中にどのメソッドを呼び出すかを決定できなくなります。
部分的な解決策として、シングルトン パターンを利用して、言語の制限に違反することなく、継承された静的クラスの動作をエミュレートできます。
以上がC# で静的クラスを継承できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。