C# 委托、事件、Lambda 表达式及高级特性深入解析
匿名方法与局部变量访问
匿名方法有一个有趣的特性,它能够访问定义它的方法的局部变量,这些变量被称为匿名方法的外部变量。不过,匿名方法作用域与定义它的方法作用域之间的交互有一些重要规则:
- 匿名方法不能访问定义它的方法的 ref 或 out 参数。
- 匿名方法不能有与外部方法中局部变量同名的局部变量。
- 匿名方法可以访问外部类作用域中的实例变量(或静态变量)。
- 匿名方法可以声明与外部类成员变量同名的局部变量,这些局部变量有独立的作用域,并会隐藏外部类成员变量。
以下是一个示例,在 Main() 方法中定义了一个局部整数 aboutToBlowCounter ,在处理 AboutToBlow 事件的匿名方法中,会将该计数器加 1,并在 Main() 方法结束前输出计数:
static void Main(string[] args)
{
Console.WriteLine("***** Anonymous Methods *****\n");
int aboutToBlowCounter = 0;
// 创建一个汽车对象
Car c1 = new Car("SlugBug", 100, 10);
// 使用匿名方法注册事件处理程序
c1.AboutToBlow += delega
超级会员免费看
订阅专栏 解锁全文
865

被折叠的 条评论
为什么被折叠?



