zoukankan      html  css  js  c++  java
  • C# 4.0新加特性

    协变和逆变

    这个在C#2.0中就已经支持委托的协变和逆变了,C#4.0开始支持针对泛型接口的协变和逆变:

    IList<string> strings = new List<string>();
    
    IList<object> objects = strings;

    协变和逆变仅针对引用类型。

    动态绑定

    看例子:

    class BaseClass
    {
        public void print()
        {
            Console.WriteLine();
        }
    }
    Object o = new BaseClass();
    dynamic a = o;
    //这里可以调用print方法,在运行时a会知道自己是个什么类型。 这里的缺点在于编译的时候无法检查方法的合法性,写错的话就会出运行时错误。
    a.print();

    可选参数,命名参数

    private void CreateNewStudent(string name, int studentid = 0, int year = 1)

    这样,最后一个参数不给的话默认值就是1,提供这个特性可以免去写一些重载方法的麻烦。

    调用方法的时候,可以指定参数的名字来给值,不用按照方法参数的顺序来制定参数值:

    CreateNewStudent(year:2, name:"Hima", studentid: 4); //没有按照方法定义的参数顺序
  • 相关阅读:
    H.Playing games
    P4721 【模板】分治 FFT
    hdu5730 分治fft
    hdu6394Tree lct
    bzoj2763: [JLOI2011]飞行路线 最短路
    bzoj2154: Crash的数字表格 莫比乌斯反演
    bzoj3211: 花神游历各国 线段树
    溢流
    css控制继承
    “<textarea>”内的文字对齐
  • 原文地址:https://www.cnblogs.com/kylin2016/p/5817065.html
Copyright © 2011-2022 走看看