以下の例では、GetPeopleを使用するクライアントコードが各ユーザーの名前と年齢をコンソールに表示したい場合、リフレクションを使用して、そのクエリにIEnumerable(Of Person)が含まれていることを確認してからキャストする必要がありますそのようなものとして、その特性を得ることができます。IEnumerable <T>でIEnumerableを使用する必要がある場合は、
Public Function GetPeople() As IEnumerable
Dim query = From p As Person In People.AsEnumerable() _
Select p
Return query
End Function
のIEnumerableの一般的な形式は、はるかに有益で便利なクライアントに思える:
Public Function GetPeople() As IEnumerable(Of Person)
Dim query = From p As Person In People.AsEnumerable() _
Select p
Return query
End Function
私は理由がある確信している - そう、なぜIEnumerableを、これまでのIEnumerableよりも優先されるだろうが、(Tの) ?
ありがとうございました。
一般に、IEnumerable.GetEnumerator()を明示的なインターフェイスの実装として実装し、IEnumerable。暗黙の実装として.GetEnumerator()を使用します。 (非ジェネリックコードの場合は)後方互換性がありますが、クラスは通常完全に汎用です –
thecoop