VB.NET을 사용하여 Quicksort 기본 클래스를 만들고 IComparable 요소의 배열을 사용하려고합니다. 나는 복식의 배열에 통과 할 때, 그러나이중 배열을 IComparable 배열로 변환
public shared sub Sort(ByVal values() as IComparable)
을 컴파일러는 나에게 오류를주고있다 : 서명은 다음과 같습니다.
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.
오류는 다음의가에서 IComparable을 구현하는 두 배로
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 컴파일러가 왜 그렇게 할 수 없습니까?
아, 맞아. 실제로 새로운 언어 기능을 사용해야합니다. –
제네릭을 사용하여 정렬 방법을 작성하는 방법을 보여줄 수 있습니까? – Alex
@Alex에는 더 많은 컨텍스트가 필요합니다. 입력 내용은 무엇입니까? 그러나 다음 중 하나 : IComparable-of-T, IComparer-of-T 또는 Comparer-of-T.Default –