【问题标题】:Method signature of the function which returns multiple value in C# [duplicate]在C#中返回多个值的函数的方法签名[重复]
【发布时间】:2020-01-25 17:38:21
【问题描述】:

我有下面的方法调用,它返回多个值,而且该函数是异步类型的。

var (averageSalary, numberOfEmployee) = await SomeCalculation(0L, 10, 0L == 10L);

现在我需要编写函数的方法签名和返回类型。下面是代码:

private static void Main(string[] args)
    {
        var (averageSalary, numberOfEmployee) = await SomeCalculation(0L, 10, 0L == 10L);
    }

    public static async Task<(long averageSalary, long numberOfEmployee)> SomeCalculation(long num1, long num2, bool b)
    {
        long averageSalary = num1;
        long numberOfEmployee = num2;

        return (averageSalary, numberOfEmployee);
    }

但问题是当方法在main方法中调用时,出现以下错误。

“await”运算符只能在异步方法中使用。考虑使用 'async' 修饰符标记此方法并将其返回类型更改为 'Task'。

谁能给我写正确方法签名的建议。

【问题讨论】:

  • 你需要将你的Main标记为async

标签: c# return-value


【解决方案1】:

你的代码应该是这样的:

public static async Task<(long averageSalary, long numberOfEmployee)> SomeCalculation(long num1, long num2, bool b)
{
    long averageSalary = num1;
    long numberOfEmployee = num2;

    return (averageSalary, numberOfEmployee);
}

static async Task Main(string[] args)
{
    var (averageSalary, numberOfEmployee) = await SomeCalculation(0L, 10, 0L == 10L);
}

您可能需要将 Visual Studio 中的 C# 版本重置为最新版本(7.1 或更高版本)。单击项目,鼠标右键,单击“构建”,然后单击“高级”按钮。解释为here

【讨论】:

    猜你喜欢
    • 2014-04-04
    • 1970-01-01
    • 2020-03-20
    • 1970-01-01
    • 2014-09-12
    • 2022-01-20
    • 1970-01-01
    • 1970-01-01
    • 2011-07-30
    相关资源
    最近更新 更多