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: 模式匹配 ...
随机推荐
- sparksql parquet 分区推断Partition Discovery
网上找的大部分资料都很旧,最后翻了下文档只找到了说明 大概意思是1.6之后如果想要使用分区推断就要设置数据源的basePath,因此代码如下 java public class ParitionInf ...
- erlang 中带下划线变量的使用
在erlang里'_'是一个特殊的变量(其实erlang里不应该叫“变”量,照顾习惯,姑且这么叫吧),它可以代替任何东西,在match的时候非常有用,例如: {A, _, [B|_], {B}} = ...
- 改变事件绑定的this的问题
以标准的DOM2级事件为例,第二个参数是一个函数,咱们改成bind,看看之后的this是啥. <!DOCTYPE html> <html lang="en"> ...
- webcollector 2.x 爬取搜狗搜索结果页
/** * 使用搜狗搜索检索关键字并爬取结果集的标题 * @author tele * */ public class SougouCrawler extends RamCrawler{ public ...
- 关于JDBC连接数据库时出现的Public Key Retrieval is not allowed错误
问题描述 最近在学习MyBatis框架,参考官方的文档通过配置文件的方式已经实现了通过Configuration配置文件和mapper映射文件访问mysql8数据库,于是想试试不使用XML文件去构建S ...
- vim note (2)
:e edit :edit edit :e. edit current file '.' a dot is means current : w writ ...
- 将gdal源码转化为VS工程编译过程记录
作者:朱金灿 来源:http://blog.csdn.net/clever101 为什么要用VS工程的方式来编译gdal库?主要还是为了调试方便,虽然理论上使用命令行方式生成库也能调试,详见:GDAL ...
- 关于linux下如何使用svn 客户端
1 yum install -y subversion (下载svn) 2 svn chekout "你的svn地址" 然后会询问? 我也不知道是嗄意思 , 大体就是权限什么乱七八 ...
- WPF中取得预定义颜色
原文:WPF中取得预定义颜色 使用XAML代码取得.net预定义颜色:<Page xmlns="http://schemas.microsoft.com/winfx/2006/x ...
- Leetcode 136 Single Number 亦或
题意就是从一堆数中找出唯一的一个只存在一个的数.除了那个数,其他的数都是两个相同的数. 通过亦或的性质: 1)a^a = 0 0^a = a 2)交换律 a^b = b^ a 3)结合律 (a^b)^ ...