1. delegate and events
http://csharpindepth.com/Articles/Chapter2/Events.aspx
2. 显式类型 和 隐式类型
3. 静态类型, 动态类型
静态类型, 编译时候已经定义好的类型.
动态类型: 编译时候通过动态去检查的类型.
4. 强弱类型
数组是强类型的. 所以不可能将string[]中的元素设置成filestream.
system.collections命名空间中的为弱类型. 比如 ArrayList/Hashtable
5. 值类型和引用类型
扫描二维码关注公众号,回复:
2143639 查看本文章
用现实举例来说, 如果你在读一份报纸, 你想让你的朋友也阅读一份, 所以你去打印机那面打印了一份相同的报纸给你的朋友, 这就是值类型, 因为无论你在你的报纸上做什么样的更改注解, 都不会影响到你朋友的那份报纸. 但是如果你是在阅读一个网页, 你将网页的URL分享给了你的朋友, 那么你两用的就是一个引用类型.
.net中大多数类型都是引用类型.
6. 装箱 拆箱
看个栗子:
int i = 5;
object o = i;
int j = (int)o;
解释一下这个过程. 首先i是值类型的一个变量. 将i赋值成5, 然后将i赋值给o的操作, 实际上是在内存中复制一个i的副本, 将i装箱成一个引用类型, 赋值给o. 然后将o拆箱转换成int值类型赋值给j.
7 . 归纳不同阶段的C#的特性.
C#1
静态的
C#2
泛型以及泛型集合, 受限的委托, 可空类型(int? x = null)
C#3
匿名类型, 隐式类型, 扩展方法, lambda表达式
C#4
受限的泛型斜变, 动态类型(dynimic)