C# lambda syntax

本文关键字:syntax lambda | 更新日期: 2023-09-27 18:31:52

我以前使用过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的情况下编写这些内容,以便我可以理解它们?

谢谢

C# lambda syntax

在这个例子中,Lambda 就像方法。这是一个大致等效的代码:

private SomeMethod(List<string> s)
{
    Assert.IsNotNull(s);
    Assert.AreEqual(1, s.Count);
}
clientSearchAsync("Getting", SomeMethod, Assert.IsNull);

简而言之,您将SomeMethod作为参数传递给SearchAsync方法,SearhAsync在其正文中调用它。