匿名方法范围c#

时间:2014-12-11 11:19:38

标签: c# scope anonymous-methods

我想知道我们在哪里可以定义匿名方法(匿名函数和lambda语句),因为在某些网站上它只是在函数中编写而在某些网站上编写的我们可以在类级别范围内调用它。

2 个答案:

答案 0 :(得分:2)

您可以在任何地方使用匿名函数,包括字段初始值设定项 - 但是对于字段初始值设定项,您不能使用this。例如:

public class Foo
{
    private int x;

    private Func<int> y = () => 5; // No problem
    private Func<int> z = () => x; // Disallowed, because it captures "this"
}

当然,您也可以在方法中使用它们。我不相信你可以在属性参数中使用匿名函数,因为它们不是常量表达式。

答案 1 :(得分:0)

您可以在另一个方法中定义匿名方法,基本上当您在另一个方法中将其作为Delegate参数传递时。