zoukankan      html  css  js  c++  java
  • C#6.0一些特性

    1.自动属性初始化的改进

    声明属性时可以直接进行初始化

    public int id {get;set;}=10;
    

     自动属性是省去了get和set内部的过程,而直接用set;get;这样的语句代替,

    把这个过程交给了系统,系统也为这个属性动态生成一个对应的字段。

    下面代码是一个自己控制get和set方法的示例:

            private int myVar;
    
            public int MyProperty
            {
                get { return myVar; }
                set { myVar = value; }
            }
    这里最简单的逻辑。

    演示:可以看到对属性赋的初值是有效的,并且正确的输出了。

    2.静态类的引入

    以控制台应用程序为例,以前在控制台输出内容时写的代码是:

    Console.WriteLine("hello world");
    

     这里的Console就是属于System命名空间下的一个静态类。

    现在可以这样用,在引入命名空间的地方,把静态类引入。

    using static System.Console;

    这里需要注意的是,使用static的关键字,静态类的类名要求的全名。

    在代码中就能这样用了:

    WriteLine("世界,你好");
    

     省去了静态类的开头。个人理解是为了代码的冗余。

    3.string.Format的改进

    这里直接更改了它的形式,已经不再使用string.Format这种形式了。

    为了形成对比,下面是两个示例的比较。

    原:

    string name="喜欢";
    string t1=string.Format("{0,10}",name);

    对{0,10}的理解,0表示匹配第0个参数,10表示向左补全,使字符串长度不满10的时候左以空格补全。如果原字符串长度大于10,则这个参数将无效,如果是负数则表示右补全。

    如果是{0:yyyy-mm-dd}以冒号隔开的表示以后面的格式显示数据。

    新:

    string name="喜欢";
    string t1=$"{0,10}";

    地方直接以"$"代替了string.Format,并且把参数写在{}大括号里,不再需要占位符。

    4.集合初始化器

    之前我一直是使用这样的方式初始化的,

    Dictionary<string,int> dic=new Dictionary<string,int>{{"1",1},{"2",2}};
    

    现在可以是:

    Dictionary<string,int> dic=new Dictionary<string,int>{["1"]=1,["2"]=2};

    个人感觉方便了一点点,在直观性方面也比较好看。

    5.null表达式

    之前只知道可空值类型,像int?这样的格式,正常情况下,值类型是不可以为null,只有引用类型才能为null;

    string[] test=new string[]{"xihuan","xiaoai"};
    int? length1=test[0]?.Length;
    int? result=test[1]?.Length??

    int d=  "sfsd"?.Length??5;

    ??双问号操作符,左边为null则取值为右边,左边不为null则为取值为左边。

  • 相关阅读:
    电路中的VCC和VDD
    动态数码管 什么是位选 段选
    pytest文档62-内置fixture之request
    pytest文档61-fixture之name参数使用别名
    pytest文档60-pytest.main()的使用
    python笔记49-yaml文件中变量的使用(锚点& 与 引用*)
    python笔记48-面试题:m1={'a':1,'b':2,'c':1} 将同样的value的key集合在list里,输出{1:['a','c'],2:['b']}
    jenkins学习15-Allure报告不用登陆也能给领导看
    python接口自动化35-pyppeteer-install下载没反应,r.html.render() 下载无反应问题解决
    kvm内存优化--KSM
  • 原文地址:https://www.cnblogs.com/xiaoai123/p/6961923.html
Copyright © 2011-2022 走看看