C# 6新特性及示例代码
今天推荐的其实是一个Github开源项目,不过这个开源项目是专门介绍C# 6的最新特性,并给出了示例代码。
我们知道,微软即将发布Windows 10和Visual Studio 2015,在VS2015中会带有最新版本的C# 6和VB 14。我想大家前期应该已经或多或少的对C# 6的一些新特性有所了解了。
在今天推荐的这个页面(或者说是网站中),Robert MacLean 给出了一系列博文地址来逐一介绍了C# 6的新特性,并都附带有示例代码。涉及到如下C# 6的新特性:
- 字典/索引初始化器(Dictionary Initialisers or Index Initialisers)。这个特性使得字典和列表集合的初始化变得更加容易。
- 带有初始化器的自动属性(Auto-properties with initializers)。之前自动属性的初始化只能在构造器中,现在可以写到属性上。
- 只读自动属性(Read-only auto-properties)。其实之前的C#是支持实现只读效果(让set语句为private)的自动属性的,不过现在可以真正的支持了。
- 静态using语句(Static Using Statements)。通过在using上附加static修饰符,让静态方法调用可以省略命名空间和类前缀了。
- 在catch片段中支持await(Await in catch blocks)。这个特性顾名思义。
- 异常过滤器(Exception Filtering)。在捕获异常的时候,可以用额外的判断条件来过滤执行流程是否进入当前catch片段。由于这个特性有很多奇巧淫技(比如之前我介绍过的用这个特性来实现C#的模式匹配),作者又用一篇博文详细讲解了更多用法(Additional Details on Exception Filtering)。
- 空值传播操作或也称nullet操作符(Null Propogation (the nullet operator))。之前如果一个对象可能为空,那么就需要先判断再访问其属性,现在可以通过nullet操作符(或称猫王操作符)“?.”来快捷的实现这样的代码逻辑。这个特性极大地依赖于Roslyn编译器功能。
- 获取名称字符串(NameOf)。这个特性和TypeOf类似,不过NameOf是获取名称字符串值的。有了这个特性,以后妈妈再也不用担心我写错名称了。
- 成员内部代码写为表达式(Expression Bodied Members)。也就是可以把方法(这样的类成员)的内部代码直接写为一个表达式,这样一行代码就可以完成方法的编写。
- 字符串插值(String Interpolation)。之前要把几个变量构造为一个字符串,除了字符串连接,就是string.Format,现在可以在字符串中直接插入变量名称即可。
以上博文写得的内容都很详实易懂,配有代码。尤其还会先讲述C#老版本是如何完成类似工作,在使用新语法后如何事倍功半。是C# 6新特性不可多得的学习资料。
博文的索引和具体代码,可以“阅读原文”来访问。
原文地址:https://github.com/rmaclean/sharpsharpwithcsharp6
C# 6新特性及示例代码的更多相关文章
- C#6新特性,让你的代码更干净
前言 前几天看一个朋友的博客时,看他用到了C#6的特性,而6出来这么长时间还没有正儿八经看过它,今儿专门看了下新特性,说白了也不过是语法糖而已.但是用起来确实能让你的代码更加干净些.Let's try ...
- Entity Framework Core 2.0 新特性
本文翻译来自:https://docs.microsoft.com/en-us/ef/core/what-is-new/index 一.模型级查询过滤器(Model-level query filte ...
- 5分钟学会Java9-Java11的七大新特性
现在Java有多元化的发展趋势,既有JS又有C++还有C#的影子,不学习那是不行滴. 来来来,花5分钟看看Java9-Java11的七大新特性,还有代码样例. Java11 发布了,然而很多公司还在用 ...
- java8新特性,你有用起来了吗?(精编)
2019年9月19日java13已正式发布,感叹java社区强大,经久不衰.由于国内偏保守,新东西总要放一放,让其他人踩踩坑,等稳定了才会去用.并且企业目的还是赚钱,更不会因为一个新特性去重构代码 ...
- 黑马程序员_Java基础:JDK1.5后的新特性:自动拆装箱,以及注意事项
------- android培训.java培训.期待与您交流! ---------- 首先来看一段代码: Integer x = new Integer(4); Integer y = 4; 在JD ...
- Atitit.android jsbridge v1新特性
Atitit.android jsbridge v1新特性 1. Java代码调用js并传参其实是通过WebView的loadUrl方法去调用的.只是参数url的写法不一样而已1 2. 三.JAVA ...
- C# 6.0/7.0 的新特性
转眼C#语言都已经迭代到7.0版本了,很多小伙伴都已经把C# 7.0 的新特性应用到代码中了,想想自己连6.0的新特性都还很少使用,今天特意搜集了一下6.0和7.0的一些新特性,记录一下,方便查阅. ...
- 转: 【Java并发编程】之二十:并发新特性—Lock锁和条件变量(含代码)
简单使用Lock锁 Java5中引入了新的锁机制--Java.util.concurrent.locks中的显式的互斥锁:Lock接口,它提供了比synchronized更加广泛的锁定操作.Lock接 ...
- Java 11 正式发布,这 8 个逆天新特性教你写出更牛逼的代码
美国时间 09 月 25 日,Oralce 正式发布了 Java 11,这是据 Java 8 以后支持的首个长期版本. 为什么说是长期版本,看下面的官方发布的支持路线图表. 可以看出 Java 8 扩 ...
随机推荐
- 让scrollView、tableView滚动到底部
- (void)scrollsToBottomAnimated:(BOOL)animated { CGFloat offset = self.tableView.contentSize.height ...
- Ubuntu 中软件的安装、卸载以及查看的方法总结
Ubuntu 中软件的安装.卸载以及查看的方法总结 博客分类: Linux UbuntuDebian配置管理CacheF# 说明:由于图形化界面方法(如Add/Remove... 和Synaptic ...
- PHP访问,增删改查,小结
PHP访问数据,增,删,改,查 增: 1,add.php 显示页面,利用 <form> 表单添加数据,数据添加到 name 中. 2,addchuli.php 处理页面,定义变量接受 $_ ...
- 给WordPress Page页面添加摘要输入框
默认情况下 WordPress Page 编辑页面没有摘要(Excerpt)输入框,所以对 WordPress 进行 SEO 的时候比较麻烦. 这个时候我们就可以通过以下代码给我 WordPress ...
- Nmap备忘单:从探索到漏洞利用 Part1
在侦查过程中,信息收集的初始阶段是扫描. 侦查是什么? 侦查是尽可能多的收集目标网络的信息.从黑客的角度来看,信息收集对攻击非常有帮助,一般来说可以收集到以下信息: 电子邮件.端口号.操作系统.运行的 ...
- python如何获取某模块的版本信息
1)module.__version__ 2)用dir(module)查看有没有版本信息 3)help(module)
- MySQL数据库索引的4大类型以及相关的索引创建
以下的文章主要介绍的是MySQL数据库索引类型,其中包括普通索引,唯一索引,主键索引与主键索引,以及对这些索引的实际应用或是创建有一个详细介绍,以下就是文章的主要内容描述. (1)普通索引 这是最基本 ...
- explict关键字
[本文链接] http://www.cnblogs.com/hellogiser/p/explict.html [分析] explicit 只对构造函数起作用,用来抑制隐式转换. Suppose yo ...
- 如何给spine骨骼动画挂载粒子特效
目的是要把粒子挂载到骨骼动画的某个一个部件上,其实最主要是找对位置. 预览效果,左手红火,右手蓝火,很炫吧:) //init bool HelloWorld::init() { /////////// ...
- 到天宫做客-最后一分钟AC!!!
问题 C: 到天宫做客 时间限制: 1 Sec 内存限制: 128 MB提交: 100 解决: 26[提交][状态][讨论版] 题目描述 有一天,我做了个梦,梦见我很荣幸的接到了猪八戒的邀请,到天 ...