等待'Parse Xamarin Android'不工作

0 c# parsing android xamarin

我试图让Parse在Xamarin上工作.我在C#上构建一个Android应用程序.在快速入门指南期间,我被告知要将此代码复制并粘贴到Oncreate中

var testObject = new ParseObject ("TestObject");
testObject ["foo"] = "bar";
await testObject.SaveAsync();
Run Code Online (Sandbox Code Playgroud)

但它显示"等待"的错误有谁知道为什么?任何帮助是极大的赞赏!

还有人说我需要将该函数标记为异步.但我不明白它想要什么.注意:您需要将该函数标记为异步才能等待SaveAsync调用的结果

https://www.parse.com/apps/quickstart#android/xamarin/blank

It'*_*ie. 5

注意:我不确定这是否适用于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)