0

派生元の抽象クラスを作成しています。Value多数のデータ型になり得るプロパティがあります。ジェネリックに関する記事を見ましたが、私の理解が正しいかどうか疑問に思っています。

要約を持っていますか:

BaseClass<T>

そしてそれを次のように継承します:

InheritingClass: BaseClass<int>

基本的には次のようになります。BaseClassで定義されたタイプがある場合は、 InheritingClassを介して使用する場合Tintはタイプとして扱いますか?

それが私の理解であり、これらのクラスの残りを構築して、私がかなり離れていることを知る前に、それが正しいことを確認したいだけです。ジェネリックを使用したのはこれが初めてです。

4

3 に答える 3

5

いいえ、違います; これは、クラスが特にからのみ継承することを意味しますBaseClass<int>。でジェネリック型パラメーターを定義する場合、次のようTになります。InheritingClass

InheritingClass<T> : BaseClass<int>

その場合、その型パラメーターはInheritingClassとそれ自体のメンバーにのみ関係し、いかなる方法でも適用さBaseClassれません。どちらも、親子関係のためTInheritingClass自動的に解決されません。intつまり、2つのタイプパラメータは互いに独立しています。

于 2012-06-29T21:40:08.870 に答える
2

InheritingClassにタイプTがある場合は、それをタイプintとして扱います。

@BoltClockですでに述べたように、これは当てはまりません。しかし、あなたが言うつもりだったのだろうか:

BaseClassにタイプTがある場合は、それをタイプintとして扱います。

これがあなたの意図したことであるなら、あなたは確かに正しいです。

于 2012-06-29T21:45:51.570 に答える
0

ジェネリックスは、任意のタイプで使用するために簡単にカスタマイズできるタイプセーフクラスを持つためのものです。「T」は、そのクラスで使用するタイプのプレースホルダーです。

http://msdn.microsoft.com/en-us/library/ms379564(v=vs.80).aspx

「ジェネリックスを使用すると、実際のデータ型にコミットすることなく、タイプセーフなデータ構造を定義できます。」

于 2012-06-29T21:45:53.803 に答える