C#流言终结者1(当初入门时的一些小实验)

小数组赋值给大数组会如何

 

 int[] num = new int[]{1,2,3};

 int[] num2 = new int[]{4,5};

 num2 = num;

 

不会报错,num会变成num2

 

会有这个结果是因为数组int[] 是个引用,赋值只是改变了引用指向。

 

Int[] num 相当于 Array num

 

 

 

 

 

 

为什么触发事件要判断事件是否为空?

   if (OnSalaryCompute != null)

  {

    OnSalaryCompute();      //触发事件

  }

 

OnSalaryCompute 事件本质就是一个委托的List的引用,如果引用为空,调用事件会报错,因此使用前要检查。

 

评:个人认为这一步很多余,微软完全可以帮我们判断节省这部分代码。但是事件为null同时意味着没有人注册事件,这也是个有用的信息,所以事件可以等于null是一件好事。

 

 

 

异常抛出后会导致循环中断吗?

While(true){

 

Try{

//do something to make a exception

//a normal code

}

Catch(Exception e){

//

}

 

//another code

}

 

不会!

代码运行到会抛出异常的地方时会立刻中断调到catch语句,抛出异常的代码后面的逻辑不会运行,catch语句处理完后会继续往下运行。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值