IComparable 要素の配列を取得して、VB.NET を使用して Quicksort 基本クラスを作成しようとしています。署名は次のようになります。
public shared sub Sort(ByVal values() as IComparable)
ただし、double の配列を渡すと、コンパイラでエラーが発生します。
Dim numbers(100) as double
Dim random as new Random(0)
for i as integer = 0 to numbers.length - 1
numbers(i) = random.NextDouble()
Next
QuickSort.Sort(numbers) ' gives compiler error.
エラーは次のとおりです。
Error 88 Value of type '1-dimensional array of Double' cannot be converted to '1-dimensional array of System.IComparable' because 'Double' is not derived from 'System.IComparable'. C:\Proving Grounds\Module1.vb
.NET のドキュメントには、double が IComparable を実装すると記載されています。.NET コンパイラでこれができないのはなぜですか?