之前我使用过lambda语法,但我一直看到以下类型的语法,不知道如何解释这个,是否有更常规的写法,所以我可以比较两者并更好地理解。
这是我见过的一个例子:
client.ExecuteAsync(request, (response, asyncHandle) =>
{
Assert.NotNull(response.Content);
Assert.Equal(val, response.Content);
resetEvent.Set();
});
这是另一个例子:
client.SearchAsync("Getting", s =>
{
Assert.IsNotNull(s);
Assert.AreEqual(1, s.Count);
},
Assert.IsNull);
有没有办法在没有lambda的情况下写这些,所以我能理解它们?
由于
答案 0 :(得分:2)
在这个例子中,Lambdas就像方法。这是一个大致相同的代码:
private SomeMethod(List<string> s)
{
Assert.IsNotNull(s);
Assert.AreEqual(1, s.Count);
}
clientSearchAsync("Getting", SomeMethod, Assert.IsNull);
简而言之,您将SomeMethod传递给SearchAsync方法作为参数,SearhAsync在其体内调用它。