C#编程中的关键特性与异常处理
在C#编程中,有许多重要的概念和特性,它们对于提高代码的效率、可读性和可维护性起着关键作用。下面将详细介绍这些特性,包括委托、异常处理、枚举和迭代器以及可空值类型等。
委托相关特性
循环变量与委托调用问题
在循环中使用委托时,可能会遇到变量值的问题。考虑以下情况:
Action[] actions = new Action[3];
for (int i = 0; i < 3; i++)
{
actions [i] = () => Console.Write (i);
}
foreach (Action a in actions) a();
上述代码期望输出 012 ,但实际输出是 333 。这是因为 i 是一个在循环迭代之间保持值的变量,当委托被调用时,它们看到的是 i 在调用时的值,即 3 。
解决方案是将迭代变量赋值给一个在循环作用域内的局部变量:
Action[] actions = new Action[3];
for (int i = 0; i < 3; i++)
{
int loopScopedi = i;
actions [i] = () => Console.Write (loopScopedi);
}
foreac
超级会员免费看
订阅专栏 解锁全文

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



