小数组赋值给大数组会如何
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语句处理完后会继续往下运行。