C#7 кортеж и асинхронность
Старый формат:
private async Task<Tuple<SomeArray[], AnotherArray[], decimal>>
GetInvoiceDetailAsync(InvoiceHead invoiceHead) { ... }
Как вы можете сделать это в C#7 с новым форматом кортежей?
1 ответ:
Шаг 1: добавить NuGet-пакет ValueTuple для вашего проекта.
Шаг 2: Как говорит Лукас в своем комментарии, измените синтаксис на:private async Task<(SomeArray[], AnotherArray[], decimal)>GetInvoiceDetailAsync( InvoiceHead invoiceHead) { ... return (x, y, z); }
Обратите внимание, что вы также можете добавить имена к этим элементам кортежа, например:
private async Task<(SomeArray[] x, AnotherArray[] y, decimal z)>GetInvoiceDetailAsync( InvoiceHead invoiceHead) { ... return (x, y, z); }
И затем вы можете получить к ним доступ как к этим именам, а не
Item1
,Item2
иItem3
.