我试图让Parse在Xamarin上工作.我在C#上构建一个Android应用程序.在快速入门指南期间,我被告知要将此代码复制并粘贴到Oncreate中
var testObject = new ParseObject ("TestObject");
testObject ["foo"] = "bar";
await testObject.SaveAsync();
Run Code Online (Sandbox Code Playgroud)
但它显示"等待"的错误有谁知道为什么?任何帮助是极大的赞赏!
还有人说我需要将该函数标记为异步.但我不明白它想要什么.注意:您需要将该函数标记为异步才能等待SaveAsync调用的结果
注意:我不确定这是否适用于Xamarin,如果我错了,请纠正我.
基本上,错误的是该函数不是异步的.我猜你的函数定义看起来像这样:
public void MyFunction(MyObject arg, etc)
{
var testObject = new ParseObject ("TestObject");
testObject ["foo"] = "bar";
await testObject.SaveAsync();
}
Run Code Online (Sandbox Code Playgroud)
await后来在语言中引入,为了确保它没有破坏任何旧代码,您需要将async修改器添加到方法中以便能够使用async.像这样:
//note ????? the async modifier in the function declaration
public async void MyFunction(MyObject arg, etc)
{
var testObject = new ParseObject ("TestObject");
testObject ["foo"] = "bar";
await testObject.SaveAsync();
}
Run Code Online (Sandbox Code Playgroud)
那将编译.但是,您可以做另一项改进.您可以将该Task类用作返回值.这将让其他方法用于await您的方法.像这样:
//note the ???? new return value
public async Task MyFunction(MyObject arg, etc)
{
var testObject = new ParseObject ("TestObject");
testObject ["foo"] = "bar";
await testObject.SaveAsync();
}
Run Code Online (Sandbox Code Playgroud)
这意味着其他人将能够做到这样的事情:
await MyFunction(arguments);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
648 次 |
| 最近记录: |