Why only the first parameter in the definition of VB.NET Generics uses the 'Of' keyword ?

Dec 13 2011 11:00 AM


For example I have here the  the full code that LINQ uses for the Enumerable.Select() method :


<System.Runtime.CompilerServices.Extension()> _
Public Shared Function [Select](Of TSource, TResult)(
ByVal source As IEnumerable(Of TSource),
ByVal selector As Func(Of TSource, TResult)
) As IEnumerable(Of TResult)
If source Is Nothing Then
Throw New ArgumentNullException("source")
End If
If selector Is Nothing Then
Throw New ArgumentNullException("selector")
End If
Return SelectIterator(Of TSource, TResult)(source, selector)
End Function



I understand the 'Of' keyword denotes a generic type parameter, but why is this keyword not used for the TResult parameter as well in the  'Public Shared Function [Select](Of TSource, TResult)' from above ?



Answers (2)