.Net 4.5和4.0中Async方法的Out关键字的替换是什么?

Ash*_*ain 5 c# out async-await .net-4.5 windows-phone-8

所有我想在我的异步功能中使用Out关键字.根据MSDN,Async修饰符不支持out关键字.那么.Net framework 4.5/4.0中还有其他替代品吗?

har*_*r07 6

您可以声明异步函数返回Tuple.有了这个功能,该函数仍然能够返回多个值而不使用out参数.

public async Task<Tuple<string, int, bool>>SomeFunctionAsync()
{
    return new Tuple<string, int, bool>("foo", 0, false);
}
Run Code Online (Sandbox Code Playgroud)

以供参考 :

更新:

您可以在评论中使用@svick建议的较短语法.以下函数返回相同的值,但使用Tuple.Create:

public async Task<Tuple<string, int, bool>>SomeFunctionAsync()
{
    return Tuple.Create("foo", 0, false);
}
Run Code Online (Sandbox Code Playgroud)

  • 顺便说一下,`Tuple.Create()`通常比`new Tuple()`更短,因为你可以使用类型推断. (5认同)