1. MSN GMD Shanghai
  2. 2.0
    1. 泛型
      1. 实质:在程序中不指定具体类型,而是根据调用函数进行推断
      2. 推断时期
      3. 意义
    2. 迭代器
    3. 匿名方法
      1. ?Delegate
    4. 分布类/局部类型
    5. 可空(空属)类型
    6. 静态类
    7. 杂项技术
      1. 问号的演变
  3. 3.0 & 3.5
    1. 可爱的var
      1. 也可用作数组
      2. 仅限局部变量
      3. 初始化语句为表达式
      4. 自动推断类型
    2. Auto-implemented properties
    3. 隐型数组
      1. ?
    4. 对象和集合初始化器
    5. 匿名类型
      1. 意义
      2. 成员是编译器根据初始化器推断而来一些读写属性
      3. 继承System.Object
      4. new关键字
      5. 实质,编译器帮你生成
    6. Extension Methods
      1. 在要使用的类中进行引用
      2. 规则
      3. 不改变源码为现有类添加实例方法
      4. public static void Foo(this string s)
      5. 继承,组合,反射
      6. 实质
      7. 优先级
    7. Lambda Expression
      1. 2.0 中的应用
      2. 3.0
        1. list.FindAll(s=>s.Indexof("abc")>0);
      3. 格式
        1. (x, y) => x * y
        2. x => x * 10
        3. x => { return x * 10; }
        4. (int x) => x * 10
        5. () => Console.WriteLine()
      4. 格式要点
        1. 表达式的参数类型可以忽略
        2. 表达式的主体(body)可以是表达式,也可以是语句块
        3. 表达式传入的实参将参与类型推断,以及方法重载辨析
        4. 达式表达式和表达式体可以被转换为表达式树
      5. Lambda表达式与委托类型
        1. L和D拥有相同的参数个数
        2. L的参数类型要与D的参数类型相同
        3. D的返回类型与L相同
        4. 转换
    8. LINQ
      1. LINQ 的演变及其对 C# 设计的影响
    9. 表达式树 Expression trees
    10. 对象集合初始化器
      1. var a = new Point { X = 0, Y = 1};
      2. List<int> num = new List<int>{0,1,2,3};
      3. 按序赋值
      4. 按顺序调用ICollection<T>.Add(T)
  4. 语言发展方向
    1. 语义化更清晰
    2. 书点更方便
    3. C#发展轨迹
  5. 计算机不懂OO
    1. 面向过程
      1. 冯诺依曼体系
      2. 顺序执行
    2. OO意义
      1. 人类思维的一次转变
      2. 面向过程缺点
      3. OO 优点
      4. 重用
      5. 人类思维,易维护
    3. 如何实现
      1. 在方法中加入一个新参数
        1. Python中self
      2. ?加这个方法是什么时间
        1. 静态方法实例方法
        2. 内存中的区别
        3. 程序运行,内存关系????
      3. 本质
      4. 题外话题:程序内存的分配
  6. 4.0
    1. Dynamically Typed Object
    2. Named and optional parameters
      1. MVC
    3. Co- and Contra-Variance
    4. Compiler as a Service
    5. Subtopic 5
      1. SortedSet<>