请参阅我的示例代码
_service.GetCustomers((customers, error) =>
{
if (error != null)
{
MessageBox.Show(error.Message);
return;
}
Customers = new ObservableCollection<CustomerViewModel>(customers);
IsBusy = false;
});
如果我要对另一个接受更多参数的函数进行类似的函数调用,那该怎么办呢。函数定义就像这样
GetCustomers(DateTime sTime, int ID, Action<IEnumerable<CustomerViewModel>, Exception> callback)
那么如何使用lambda表达式调用上面的函数?
答案 0 :(得分:2)
_service.GetCustomers(datetime, id, (customers, error) => .....
... same as before
答案 1 :(得分:2)
像以前一样简单地传递您的匿名代表以及其他参数。
_service.GetCustomers(datetime, id, (customers, error) => {
if (error != null)
{
MessageBox.Show(error.Message);
return;
}
Customers = new ObservableCollection<CustomerViewModel>(customers);
IsBusy = false;
});
答案 2 :(得分:2)
lambda表达式是在C#2.0 Action&lt; T&gt;中引入的匿名委托的简写。它的兄弟姐妹是通用代表。每当您看到Action&lt; T&gt;类型的参数时您可以使用等效参数的lambda替换它。在这种情况下,它将是
service.GetCustomers(sometime, someId, (viewmodels, exception)=>{/*handle callback here*/});