在.NET中,您可以使用匿名方法来实现捕获值。匿名方法是一种在代码中定义的不需要显式命名的方法。要在匿名方法中捕获值,您可以使用lambda表达式。以下是一个示例:
using System;
class Program
{
static void Main()
{
int x = 10;
Func<int, int> func = delegate (int y)
{
return x + y;
};
Console.WriteLine(func(5)); // 输出 15
}
}
在这个示例中,我们定义了一个名为func
的委托,它接受一个整数参数y
并返回一个整数值。在匿名方法中,我们可以访问外部变量x
并将其与y
相加。
在这个例子中,我们使用了delegate
关键字来定义匿名方法。您还可以使用lambda表达式来实现相同的功能:
using System;
class Program
{
static void Main()
{
int x = 10;
Func<int, int> func = (int y) => x + y;
Console.WriteLine(func(5)); // 输出 15
}
}
在这个示例中,我们使用了lambda表达式来定义匿名方法。这个表达式非常简洁,可以轻松地捕获外部变量x
并将其与y
相加。
无论您使用哪种方法来定义匿名方法,都可以捕获外部变量的值。这意味着您可以在匿名方法中使用这些值,而无需显式地将它们作为参数传递。
领取专属 10元无门槛券
手把手带您无忧上云