C#7 元组和异步
C#7 tuple & async
旧格式:
private async Task<Tuple<SomeArray[], AnotherArray[], decimal>>
GetInvoiceDetailAsync(InvoiceHead invoiceHead) { ... }
如何在 C#7 中用新的元组格式做到这一点?
第 1 步:将 ValueTuple nuget 包添加到您的项目中。
第 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
。
旧格式:
private async Task<Tuple<SomeArray[], AnotherArray[], decimal>>
GetInvoiceDetailAsync(InvoiceHead invoiceHead) { ... }
如何在 C#7 中用新的元组格式做到这一点?
第 1 步:将 ValueTuple nuget 包添加到您的项目中。
第 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
。