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则为取值为左边。
C#6.0一些特性的更多相关文章
- 浅谈Tuple之C#4.0新特性那些事儿你还记得多少?
来源:微信公众号CodeL 今天给大家分享的内容基于前几天收到的一条留言信息,留言内容是这样的: 看了这位网友的留言相信有不少刚接触开发的童鞋们也会有同样的困惑,除了用新建类作为桥梁之外还有什么好的办 ...
- Java基础和JDK5.0新特性
Java基础 JDK5.0新特性 PS: JDK:Java Development KitsJRE: Java Runtime EvironmentJRE = JVM + ClassLibary JV ...
- vertica 8.0 新特性
前言: <<line>> 表明在vertica 8.0文档中的title 正文: 1-支持平台 1.1-操作系统 <<Vertica Server and Ve ...
- Visual Studio 2015速递(1)——C#6.0新特性怎么用
系列文章 Visual Studio 2015速递(1)——C#6.0新特性怎么用 Visual Studio 2015速递(2)——提升效率和质量(VS2015核心竞争力) Visual Studi ...
- 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 ...
- 背水一战 Windows 10 (1) - C# 6.0 新特性
[源码下载] 背水一战 Windows 10 (1) - C# 6.0 新特性 作者:webabcd 介绍背水一战 Windows 10 之 C# 6.0 新特性 介绍 C# 6.0 的新特性 示例1 ...
- C# 7.0 新特性2: 本地方法
本文参考Roslyn项目中的Issue:#259. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 ...
- C# 7.0 新特性1: 基于Tuple的“多”返回值方法
本文基于Roslyn项目中的Issue:#347 展开讨论. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: ...
- C# 7.0 新特性3: 模式匹配
本文参考Roslyn项目Issue:#206,及Docs:#patterns. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# ...
- C# 7.0 新特性4: 返回引用
本文参考Roslyn项目中的Issue:#118. 1. C# 7.0 新特性1: 基于Tuple的“多”返回值方法 2. C# 7.0 新特性2: 本地方法 3. C# 7.0 新特性3: 模式匹配 ...
随机推荐
- 【u216】A+B Problem(aplusb)
Time Limit: 1 second Memory Limit: 128 MB [问题描述] 对于给定的A和B,求A+B的值. [输入格式] 输入文件aplusb.in的第1行为一个整数A,第2行 ...
- App各种Icon及Launch image的尺寸和用途
App各种Icon及Launch image的尺寸和用途 IOS7,8 Asset iPhone 6 Plus (@3x) iPhone 6 and iPhone 5 (@2x) iPhone 4s ...
- 通过手机其他iOS应用打开此文件
根据所处理文档的格式,提供本地设备(InApp)能处理该格式文档的所有应用(App).比如,demo中所处理的是pdf格式的文档,那么可以打开该文档的本地app有邮件.打印等等.仅支持ARC. dem ...
- NOIP模拟 乘积 - 状压dp + 分组背包
题目大意: 给出n和k,求从小于等于n的数中取出不超过k个,其乘积是无平方因子数的方案数.无平方因子数:不能被质数的平方整除. 题目分析: 10(枚举\(n\le8\)),40(简单状压\(n\le1 ...
- js中多层复杂并且动态键值JSON的获取方法
开发中遇到了用js解析重新组装json数据的要求,关键点在于JSON中的串的键是动态的,多方查找解决了在此做个记录.同时我也深感js中循环的无赖,如果用i作为键会得到索引,用key作为循环变量竟然可以 ...
- Struts2——(5)转发和重定向(跨业务模块)
一.重定向redirect(默认是转发dispatcher)和转发的区别? 1.重定向浏览器的网址发生变化(相当于请求了两次),转发浏览器的网址不发生变化(只请求了一次). 2.重定向的过程:发送请求 ...
- ADO.NET- 中批量添加数据的几种实现方法比较
在.Net中经常会遇到批量添加数据,如将Excel中的数据导入数据库,直接在DataGridView控件中添加数据再保存到数据库等等. 方法一:一条一条循环添加 通常我们的第一反应是采用for或for ...
- 一篇简单易懂的原理文章,让你把JVM玩弄与手掌之中
jvm原理 Java虚拟机是整个java平台的基石,是java技术实现硬件无关和操作系统无关的关键环节,是java语言生成极小体积的编译代码的运行平台,是保护用户机器免受恶意代码侵袭的保护屏障.JVM ...
- js中的escape的用法汇总
js对文字进行编码涉及3个函数:escape,encodeURI,encodeURIComponent,相应3个解码函数:unescape,decodeURI,decodeURIComponent 1 ...
- 在Style中将EventTrigger与Trigger同时使用
原文:在Style中将EventTrigger与Trigger同时使用 现在在看WPF关于Trigger的有关实例,然后找到一篇不错的文章,特此转载,收藏一下!! 一般情况下,使用Style时,可 ...