MustInheritと共有機能
-
12-09-2019 - |
質問
私はMustInherit
(C#でabstract
)として定義されているすべてのそれらの3つのメソッドを持っていShared
(C#でstatic
、私は信じて)宣言されているVB.NETクラス(私は書いていないこと)で探しています。たった3つの方法 - クラスにはプロパティまたはフィールドがありません。 OOの観点から、これはどんな意味を成していますか?
MustInherit
することによって、あなたは基本的にあなたは、このクラスのインスタンスを作成することはできません言っているので、私の考えは、ないです。すべてのメソッドが共有されているのでMustInherit
は良いしませんので、しかし、あなたは実際には、とにかく親クラスのインスタンスを作成することは決してないだろう。あなたにも、ののそれはMustInherit
、ちょうどあなたはいつでもそれを継承マークしない場合があります。
この方法は理にかなってクラスを作成する状況がありますか?
解決
、それが聞こえます。 「静的」とVBの同等は、「共有」されていますが、VBで「共有」クラスをマークすることはできません。違いは、誰かがこのクラスを継承して、インスタンスを作成することができることです。 C#の静的クラスが封入されます。
彼らはを何のは、やるべきModule
を使用しています。 VBのModule
とC#の静的クラスは、実質的に同一である:メンバーがタイプではなく、インスタンスに関連付けられている、あなたは彼らから継承することはできません。
他のヒント
OOの観点から、これは多くの意味がありません。
しかし、VBはC#がないように、共有としてフラグへの道にクラスを持っていません。 。MustInherit可能性が最も高い、それは基本的に静的なクラスだとしても、それのインスタンスを作成するから人々を防ぐためにしようとするために追加されました。
- C#では、あなたはstatic class
として、このクラスをフラグ可能性が高いと思います は、C#ではクラスは静的(=共有)として宣言され、私は回避策として、それは抽象的(MustInherit)マークされているので、それはインスタンス化したことがないですようにVB.NETが、それを許可していないと考えることができます。