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); //没有按照方法定义的参数顺序
  • 相关阅读:
    工厂增强
    面试题
    SpringBean生命周期及作用域
    字符串
    带参数方法实例
    带参数方法
    人机猜拳
    类的无参方法
    类和对象实例2
    类和对象实例1
  • 原文地址:https://www.cnblogs.com/kylin2016/p/5817065.html
Copyright © 2011-2022 走看看