Someone suggested to me that VB.NET Whidbey didn’t have support for ‘Generic Methods’, so I quickly wrote a bit of sample code to check (yes, it does support Generic Methods) and I thought I’d post that test code for your amusement.
Public Class GenericMethodSample Public Sub Swap(Of T)(ByRef i As T, ByRef j As T) Dim temp As T temp = j j = i i = temp End Sub End Class Public Class Sample Public Sub TestSwap() Dim i, j As Integer i = 3 j = 12 Debug.WriteLine(i) Debug.WriteLine(j) Debug.WriteLine("-------") Dim gm As New GenericMethodSample gm.Swap(Of Integer)(i, j) Debug.WriteLine(i) Debug.WriteLine(j) End Sub End Class
If you need the ‘blow-by-blow’ explanation of that code… the key lines to notice are;
Public Sub Swap(Of T)(ByRef i As T, ByRef j As T)
Which declares a “Generic Method”, which is then strongly typed at runtime via code like this;
gm.Swap(Of Integer)(i, j)
[Update]: Paul Vick points out that (Of Integer) can be skipped on the call, making it just
because the compiler will infer the correct type argument.