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 扩 ...
随机推荐
- [LeetCode] Copy List with Random Pointe
题目的关键是要让新链表和原有链表发送关联,可以通过这种关联来设置新链表的random pointer 思路:将新链表的元素插入到原有链表元素的后面,如下图所示,就可以根据原有链表的radom-> ...
- varnish4.0简介
Varnish 4.0 简介 Varnish 是一款开源的HTTP加速器和反向代理服务器,它的主要特点有: (1)是基于内存缓存,重启后数据将消失.(2)利用虚拟内存方式,io性能好.(3)支持设置0 ...
- BurpSuite之SQL Injection
BurpSuite之SQL Injection[平台]:mutillidae[工具]BurpSuite 1.4.07 + FireFox1:安装配置mutillidae如果遇到问题,开下面的帖子.ht ...
- PHP文件包含漏洞剖析
一. 什么才是”远程文件包含漏洞”?回答是:服务器通过php的特性(函数)去包含任意文件时,由于要包含的这个文件来源过滤不严,从而可以去包含一个恶意文件,而我们可以构造这个恶意文件来达到邪恶的目的. ...
- derby的三大缺陷
derby的三大缺陷 derby数据库的嵌入式特性让人很流口水.但是,我刚打算将其用进我的项目中,却发现它没有好的分页查询方式,每次都返回所有符合条件的记录.oracle有rownum,mysql有l ...
- Android Studio-AndroidStudio目录结构
最近,Google已经打算废弃Eclipse,而要大力支持他的亲生儿子AndroidStudio了,已经不在维护Eclipse了,也就是说在Eclipse上面出了什么问题,Google已经不在会管了, ...
- BI就是报表?
实际上,报表只是BI的一部分,虽然BI应用的结果通常需要通过报表来展示,但是,BI绝对不仅仅是报表.其实,大家对这些概念的理解,如同15年前的ERP一样.1998年,国内两大巨头金蝶与用友都开始宣称从 ...
- 2000多万个微信号被封全面禁止"集赞" 微信雷霆行动这次玩真的
微信雷霆行动自年初启动了打击网络黑色产业链以来,微信累计封停了2000万个招嫖账号,3万个假货公众账号,切实保护用户利益.你曾经中过招吗?Yes or No?说说你的看法吧. 同时,微信从9日起开始升 ...
- 《CMake实践》第三部分的示例代码的错误
<CMake实践>的第三章,初试cmake - cmake的helloworld 中的 PROJECT (HELLO) SET(SRC_LIST main.c) MESSAGE(statu ...
- sqlite 跨数据库查询
try { $dbh = new PDO($dbrootemp, null, null); $dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_ ...