0

そのため、いくつかの Web サービスをラップするシングルトン クラスを使用しています。サービスへの参照は、プライベートな静的読み取り専用メンバーとして格納されます。同一のインターフェイスで異なる Web サービスをラップする、非常によく似たクラスが必要です。最初のクラスから継承し、private static readonly メンバーを新しいメンバーでオーバーライドすると、すべてが思ったほどスムーズに機能しますか? 継承されたすべての関数 (一部のパブリック、一部のプライベート、一部の静的) は新しい参照を使用しますか?

以前に静的メンバーの継承でいくつかの癖に遭遇したので、私は尋ねます。

4

1 に答える 1

5

いいえ、うまくいきません。静的メンバーは、インスタンスではなく型に関連付けられており、オーバーライドできません。派生クラスで静的値 (少なくともprotectedである必要がprivateあります) を変更すると、基本クラスと派生クラスの両方のすべてのインスタンスの値が変更されます。

ここで注意すべき重要なことは、静的フィールドが基本型に関連付けられていることです。その基本型から派生した場合、静的フィールドの新しいコピーは取得されません。派生クラスは、基本クラスが使用するのと同じ静的インスタンスを使用します。

于 2012-08-28T17:43:58.210 に答える