【发布时间】:2020-12-28 13:54:47
【问题描述】:
我正在努力使用 C# 中的 async 和 await 方法。
我想确保在继续 API 调用之前填充我的“clientToken”变量。
然后我在函数 gateway.ClientToken.Generate(); 前面放了一个 await 方法,但它返回一个错误:
错误 CS1061:“字符串”不包含“GetAwaiter”的定义,并且找不到接受“字符串”类型的第一个参数的可访问扩展方法“GetAwaiter”(您是否缺少 using 指令或程序集引用? )
这是我的代码:
public Braintree()
{
InitializeComponent();
Task task = GetBraintreeToken();
}
private async Task GetBraintreeToken()
{
var gateway = new BraintreeGateway
{
Environment = Environment.SANDBOX,
MerchantId = "xxxx",
PublicKey = "xxx",
PrivateKey = "xxxx"
};
var clientToken = await gateway.ClientToken.Generate();
Result<PaymentMethodNonce> result_nonce = gateway.PaymentMethodNonce.Create(clientToken);
}
【问题讨论】:
-
如果
Generate方法包含可以运行异步的代码,您可以将方法更改为async Task<string>而不是string并从那里调用异步方法。如果没有,那么使这个方法异步是没有意义的,你将无法等待它。你只能等待任务
标签: c# ios xamarin.forms async-await