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则为取值为左边。

C#6.0一些特性的更多相关文章

  1. 浅谈Tuple之C#4.0新特性那些事儿你还记得多少?

    来源:微信公众号CodeL 今天给大家分享的内容基于前几天收到的一条留言信息,留言内容是这样的: 看了这位网友的留言相信有不少刚接触开发的童鞋们也会有同样的困惑,除了用新建类作为桥梁之外还有什么好的办 ...

  2. Java基础和JDK5.0新特性

    Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...

  3. vertica 8.0 新特性

    前言: <<line>> 表明在vertica 8.0文档中的title   正文: 1-支持平台 1.1-操作系统 <<Vertica Server and Ve ...

  4. Visual Studio 2015速递(1)——C#6.0新特性怎么用

    系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...

  5. atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性

    atitit.Servlet2.5 Servlet 3.0 新特性 jsp2.0 jsp2.1 jsp2.2新特性   1.1. Servlet和JSP规范版本对应关系:1 1.2. Servlet2 ...

  6. 背水一战 Windows 10 (1) - C# 6.0 新特性

    [源码下载] 背水一战 Windows 10 (1) - C# 6.0 新特性 作者:webabcd 介绍背水一战 Windows 10 之 C# 6.0 新特性 介绍 C# 6.0 的新特性 示例1 ...

  7. C# 7.0 新特性2: 本地方法

    本文参考Roslyn项目中的Issue:#259. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 ...

  8. C# 7.0 新特性1: 基于Tuple的“多”返回值方法

    本文基于Roslyn项目中的Issue:#347 展开讨论. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: ...

  9. C# 7.0 新特性3: 模式匹配

    本文参考Roslyn项目Issue:#206,及Docs:#patterns. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# ...

  10. C# 7.0 新特性4: 返回引用

    本文参考Roslyn项目中的Issue:#118. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 ...

随机推荐

  1. 【u240】棋子放置

    Time Limit: 1 second Memory Limit: 128 MB 小虎刚刚上了幼儿园,老师让他做一个家庭作业:首先画3行格子,第一行有三个格子,第二行有2个格子,第三行有1个格子. ...

  2. prettytensor 的使用

    prettytensor 顾名思义,对原始的 tensorflow 下的 tensor 进行封装(prettytensor 以 tensorflow 为基础,二者搭配使用),使其成为一个更为接口友好的 ...

  3. hadoop 3.x 启动过程中 Permission denied (publickey,gssapi-keyex,gssapi-with-mic,password).

    出现这种状况是因为当前账号没有配置ssh免密登录 进入到以下目录,查看是否生成过秘钥对,如果有的话直接ssh-copy-id 主机名 没有的话执行ssh-keygen -t rsa后再重新执行ssh- ...

  4. 全文检索(elasticsearch入门)

    Elasticsearch篇: Elasticsearch是一个采用java语言开发的,基于Lucene构造的开源,分布式的搜索引擎. 设计用于云计算中,能够达到实时搜索,稳定可靠. Elastics ...

  5. 再议指针---------函数回调(qsort函数原理)

    我们是否能写一个这种函数: 能够对不论什么类型数据排序 不论什么人在使用该函数不须要改动该函数代码(即:用户能够不必看到函数源 码,仅仅会调用即可) 思考: 用户须要排序的数据的类型千变万化,可能是i ...

  6. Sql 将多个表查询的结果进行再次查询

    把你目前查到结果集定义为一个临时表 tempTable 下面是如何查 SELECT * FROM tempTable where 关键字=‘’举例 select book_num,book_name, ...

  7. Arcgis api for javascript学习笔记(4.6版本) - 二维MapView中的FeatureLayer显示标注

    4.6版本api的FeatureLayer中有提供 labelsVisible 和 labelingInfo 两个属性,设置这两个属性可以实现显示将属性中某个字段作为标注.但是这两个属性只针对三维Sc ...

  8. altium designer电气符号和包的常用元素

    1. 标准电阻:RES1.RES2.包裹:AXIAL-0.3至AXIAL-1.0 两port可变电阻器:RES3.RES4.包裹:AXIAL-0.3至AXIAL-1.0 三port可变电阻:RESIS ...

  9. Matlab Tricks(十四) —— 句柄(handle)(图形对象属性的读取与修改)

    0. 句柄的获得 H = subplot(1,2,1); saveas(H, [pathname,filename], 'jpg'); 1. h = plot(-) a = 0:10:360; x = ...

  10. Android的APK文件的反编译方法【转】

    实用的收藏一下. 来自:http://www.dewen.org/q/711/%E8%AF%B7%E6%95%99Android%E7%9A%84APK%E6%96%87%E4%BB%B6%E7%9A ...