C#流言终结者1(当初入门时的一些小实验)
2015-11-14 03:01
274 查看
小数组赋值给大数组会如何
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语句处理完后会继续往下运行。
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语句处理完后会继续往下运行。
相关文章推荐
- C#常用工具类
- C# Emgu CV学习笔记二之图像读写的两种方法
- C# 函数调用
- c# 函数练习;结构体、枚举类型
- c# 实现 通过写入注册表 记住 winform程序 登录名
- C# 自己实现的一套ORM程序附带实体生成工具
- C#实现IDispose接口
- C#基础知识回归
- C#中Encoding.Unicode与Encoding.UTF8的区别
- C#中Encoding.Unicode与Encoding.UTF8的区别
- 在C#代码中提取PDF中的注释文本
- C#语法糖,甜过初恋
- C#暴力屏蔽任务管理器
- (C#基础)创建文件,文件夹
- C#实现的三种模拟自动登录和提交POST信息的方法
- C# 发送邮件实例
- C#警惕匿名方法造成的变量共享实例分析
- C#实现向多线程传参的三种方式实例分析
- C# 开发Chrome内核浏览器(WebKit.net)
- C#基础概念 代码样例