我在编写“异步”函数时遇到问题,该函数使用“out”返回多个值。
public async void getArticle(int articleID, out string html, out string title, out string author, out string url)
{
}
这足以触发错误。一旦关键字“async”成为函数头的一部分,我在调用函数时会出现以下错误:
error: Argument 2: Cannot convert from `string?' to `GLib.AsyncReadyCallback?'
这就是电话的样子
getArticle(15752, out html, out title, out author, out url);
如果我删除关键字“async”,一切都会重新开始。这甚至可以在vala中使用,还是我必须返回一个包含所有4个字符串的对象才能使它工作?
感谢您提前提供任何帮助
最好的问候,Jan
答案 0 :(得分:2)
您必须在异步方法的末尾使用out
参数:
getArticle.begin(15752, (obj, result) => {
getArticle.end(result, out html, out title, out author, out url);
}