我有这行代码,我只是想知道这行代码是做什么的
Tracer.Initializer = () => XmlConfigurator.Configure();
是lambda表达式吗?
答案 0 :(得分:3)
是的,它是Lambda
,用空括号指定零输入参数:
() => SomeMethod()
lambda表达式是一个匿名函数,可用于创建委托或表达式树类型。通过使用lambda表达式,您可以编写可以作为参数传递或作为函数调用的值返回的本地函数。 Lambda表达式对于编写LINQ
查询表达式特别有用。
要创建lambda表达式,请在lambda运算符=>
的左侧指定输入参数(如果有),并将表达式或语句块放在另一侧。例如,lambda表达式(x) => x * x
指定一个名为x的参数,并返回x平方的值
请注意,在您的问题中,表达式lambda的主体由方法调用组成。但是,如果要创建在.NET Framework外部计算的表达式树,例如在SQL Server
中,则不应在lambda表达式中使用方法调用。这些方法在.NET公共语言运行时的上下文之外没有任何意义。
答案 1 :(得分:0)
这个lambda意味着只要调用XmlConfigurator.Configure()
就会调用Tracer.Initializer()
。
答案 2 :(得分:0)
是的,将其视为可以存储在变量中的方法。
您还可以使用
等参数(a)=> foo.func(a)中