10、C编程中的关键特性与异常处理

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
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值