質問

私はMustInherit(C#でabstract)として定義されているすべてのそれらの3つのメソッドを持っていShared(C#でstatic、私は信じて)宣言されているVB.NETクラス(私は書いていないこと)で探しています。たった3つの方法 - クラスにはプロパティまたはフィールドがありません。 OOの観点から、これはどんな意味を成していますか?

あなたはそれを継承し、の派生のクラスのインスタンスを作成する必要があります - それはMustInheritすることによって、あなたは基本的にあなたは、このクラスのインスタンスを作成することはできません言っているので、

私の考えは、ないです。すべてのメソッドが共有されているのでMustInheritは良いしませんので、しかし、あなたは実際には、とにかく親クラスのインスタンスを作成することは決してないだろう。あなたにも、のそれはMustInherit、ちょうどあなたはいつでもそれを継承マークしない場合があります。

この方法は理にかなってクラスを作成する状況がありますか?

役に立ちましたか?

解決

他の人が言ったように、彼らは本当にC#の静的クラスを望んでいたように、

、それが聞こえます。 「静的」とVBの同等は、「共有」されていますが、VBで「共有」クラスをマークすることはできません。違いは、誰かがこのクラスを継承して、インスタンスを作成することができることです。 C#の静的クラスが封入されます。

彼らはを何のは、やるべきModuleを使用しています。 VBのModuleとC#の静的クラスは、実質的に同一である:メンバーがタイプではなく、インスタンスに関連付けられている、あなたは彼らから継承することはできません。

他のヒント

OOの観点から、これは多くの意味がありません。

しかし、VBはC#がないように、共有としてフラグへの道にクラスを持っていません。 。MustInherit可能性が最も高い、それは基本的に静的なクラスだとしても、それのインスタンスを作成するから人々を防ぐためにしようとするために追加されました。

- C#では、あなたはstatic classとして、このクラスをフラグ可能性が高いと思います

は、C#ではクラスは静的(=共有)として宣言され、私は回避策として、それは抽象的(MustInherit)マークされているので、それはインスタンス化したことがないですようにVB.NETが、それを許可していないと考えることができます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top