委托总结
- 委托封装了包含特殊返回类型和一组参数的行为,类似包含单一方法的接口
- 委托类型声明中所描述的类型签名决定了哪个方法可用于创建委托实例,同时决定了调用的签名
- 为了创建委托实例,需要一个方法以及调用方法的目标
- 委托实例是不易变的
- 每个委托都包含一个调用列表---一个操作列表
- 委托实例可以合并在一起,也可以从一个委托实例中删除另一个
- 事件不是委托实例---只是成对的add/remove方法
类型系统特征总结
- C#1是静态类型的
- C#1是显示的
- C#1是安全的
- 静态类型仍然不允许一个集合成为强类型的“字符串列表”或者“整数列表”,除非针对不同的元素使用大量的重复代码
- 方法覆盖和接口实现不允许协变性/逆变性
值类型和引用类型小结
- 对于引用类型的表达式,它的值是一个引用,而非对象
- 引用就像url,是允许你访问真实信息的一小片数据
- 对于值类型的表达式,他的值是实际的数据
- 有时,值类型比引用类型更有效,有时恰好相反
- 引用类型的对象总是在堆上,值类型的可能在栈上,也可能在堆上,具体取决于上下文
- 引用类型作为方法参数使用时,参数默认是“值传递”的方式来传递,但值本身也是个引用
- 值类型的值会在需要引用类型的行为时装箱,拆箱恰好相反