ジェネリックの型制約
C# の場合、ジェネリック宣言で型パラメータに制約を付ける際は、
public void Hoge<T>(T value) where T : IComparable<T> { ... }
の様に、 where 句を使って宣言します。
一方、 VB の場合は、
Public Sub Hoge(Of T As IComparable(Of T))(ByVal value As T) ... End Sub
の様に、 As 句で宣言します。
制約を複数宣言する場合は、C# であれば、
public void Hoge<T>(T value) where T : IComparable<T>, IEnumerable<T> { ... }
と、単純にカンマ区切りで宣言すれば OK 。
VB の場合は、
Public Sub Hoge(Of T As { IComparable(Of T), IEnumerable(Of T) })(ByVal value As T) ... End Sub
と、型リストを指定すれば OK です。
…… VB での複数指定の方法を知らなかったので、勉強になりました。
# コード例がメソッドなのはご愛嬌。 :p