我一直在尝试遵循一些 WCF 数据服务示例并具有以下代码:
private void OnSaveCompleted(IAsyncResult result)
{
Dispatcher.BeginInvoke(() =>
{
context.EndSaveChanges(result);
});
}
由以下内容调用:
this.context.BeginSaveChanges(SaveChangesOptions.Batch, this.OnSaveCompleted, null);
现在我在这里有点困惑。首先,代码的第一位显示语法错误
参数类型 lambda 表达式不可分配给参数类型 System.Delegate
因此,我没有盲目地尝试遵循示例代码,而是尝试了解这里发生的情况。不幸的是,我正在努力理解错误以及实际发生的情况。谁能解释一下吗?
我觉得有点愚蠢,因为我确信这很容易。
问题是编译器不知道您尝试将 lambda 表达式转换为哪种委托。您可以通过强制转换或单独的变量来修复该问题:
private void OnSaveCompleted(IAsyncResult result)
{
Dispatcher.BeginInvoke((Action) (() =>
{
context.EndSaveChanges(result);
}));
}
or
private void OnSaveCompleted(IAsyncResult result)
{
Action action = () =>
{
context.EndSaveChanges(result);
};
Dispatcher.BeginInvoke(action);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)