J'essaie de créer une classe de base Quicksort en utilisant VB.NET, en prenant un tableau d'éléments IComparable. La signature ressemble à ceci:Conversion de tableau double en tableau IComparable
public shared sub Sort(ByVal values() as IComparable)
Cependant, quand je passe dans un tableau de doubles, le compilateur me donne des erreurs.
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.
L'erreur est:
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
Les états de documentation .NET qui double implémentons IComparable. Pourquoi le compilateur .NET ne me laisse-t-il pas faire cela?
Oh, c'est vrai. Je devrais effectivement utiliser ces nouvelles fonctionnalités de langue. –
Pouvez-vous donner un exemple comment écrire la méthode de tri avec des génériques? – Alex
@Alex besoin de plus de contexte - quelle est la contribution? Mais l'un de: IComparable-of-T, IComparer-de-T ou Comparer-de-T.Default –