web-dev-qa-db-fra.com

C # 7 Tuple & async

Ancien format:

private async Task<Tuple<SomeArray[], AnotherArray[], decimal>>         
GetInvoiceDetailAsync(InvoiceHead invoiceHead) { ... }

Comment pouvez-vous faire cela en C # 7 avec un nouveau format de tuples?

33
Oszkar

Étape 1: ajoutez le package de nuget ValueTuple à votre projet.

Étape 2: comme Lucas le dit dans son commentaire, changez la syntaxe en:

private async Task<(SomeArray[], AnotherArray[], decimal)>GetInvoiceDetailAsync(
    InvoiceHead invoiceHead) 
{ 
    ...
    return (x, y, z); 
}

Notez cependant que vous pouvez également ajouter des noms à ces éléments Tuple, le long des lignes de:

private async Task<(SomeArray[] x, AnotherArray[] y, decimal z)>GetInvoiceDetailAsync(
    InvoiceHead invoiceHead) 
{ 
    ... 
    return (x, y, z); 
}

Et vous pouvez ensuite y accéder sous ces noms, plutôt que Item1, Item2 et Item3.

56
David Arno