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); //没有按照方法定义的参数顺序
  • 相关阅读:
    day-8 xctf-guess_num
    CTF导引(一)
    day-7 xctf-level2
    day-6 xctf-hello_pwn
    day-5 xctf-when_did_you_born
    day-4 xctf-pwn CGfsb
    CrackMe_002
    如何将Map对象转换为一个实体类对象
    索引相关问题
    事务相关知识总结
  • 原文地址:https://www.cnblogs.com/kylin2016/p/5817065.html
Copyright © 2011-2022 走看看