コード階層を設計するとき、同様の機能をグループ化するために静的クラスを継承する必要が生じる場合があります。ただし、この単純な操作は C# などのプログラミング言語では課題となります。
次のように静的クラスの継承を実現しようとすると、コンパイル エラーが発生します:
public static class Base { } public static class Inherited : Base { }
この設計制限これは静的クラスの性質に由来します。
なぜ制限事項?
元 C# 言語 PM の Mads Torgersen 氏が述べているように、静的クラスを継承するやむを得ない理由はありません。静的メンバーは、クラス名自体を介してアクセスできるため、組織化ツールとして継承を必要としません。
さらに、継承は多態性の動作を意味しますが、静的メンバーはメモリ内に 1 度だけ存在し、メモリ内に存在しないため、静的メンバーには無関係です。インスタンス固有の動作を持ちます。つまり、静的メンバーは個々のオブジェクトに関連付けられていません。
代替アプローチ
静的クラスの継承に依存する代わりに、次のアプローチが実行可能な代替手段を提供します。
したがって、静的クラスの継承はサポートされていませんが、これらの代替手段を実装すると、基礎となる設計を損なうことなくコードの編成と機能を管理するのに役立ちます。原則。
以上がC# で静的クラスを継承できないのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。