【问题标题】:lambda expression meaning in xml configuratorexml configurator中的lambda表达式含义
【发布时间】:2015-07-03 18:31:33
【问题描述】:

我有这行代码,我只是想知道这行代码是做什么的

Tracer.Initializer = () => XmlConfigurator.Configure(); 

是 lambda 表达式吗?

【问题讨论】:

    标签: c# asp.net-mvc lambda


    【解决方案1】:

    是的,它是Lambda,它使用空括号指定零输入参数:

    () => SomeMethod()
    

    lambda 表达式是一个匿名函数,可用于创建委托或表达式树类型。通过使用 lambda 表达式,您可以编写可以作为参数传递或作为函数调用的值返回的局部函数。 Lambda 表达式对于编写LINQ 查询表达式特别有用。

    要创建 lambda 表达式,请在 lambda 运算符=> 的左侧指定输入参数(如果有),并将表达式或语句块放在另一侧。例如,lambda 表达式(x) => x * x 指定了一个名为 x 的参数并返回 x 平方的值

    请注意,在您的问题中,表达式 lambda 的主体由方法调用组成。但是,如果要创建在 .NET Framework 之外计算的表达式树,例如在 SQL Server 中,则不应在 lambda 表达式中使用方法调用。这些方法在 .NET 公共语言运行时的上下文之外没有任何意义。

    【讨论】:

      【解决方案2】:

      这个 lambda 表示无论何时调用 Tracer.Initializer(),都会调用 XmlConfigurator.Configure()

      【讨论】:

        【解决方案3】:

        是的,可以把它想象成一种可以存储在变量中的方法。

        你也可以使用像

        这样的参数

        (a) => foo.func(a)

        【讨论】:

          猜你喜欢
          • 2011-12-07
          • 1970-01-01
          • 1970-01-01
          • 2014-06-21
          • 2018-09-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多