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 扩 ...
随机推荐
- pthread 学习系列 case2-- pthread_mutex_t
许多互斥对象 如果放置了过多的互斥对象,代码就没有什么并发性可言,运行起来也比单线程解决方案慢.如果放置了过少的互斥对象,代码将出现奇怪和令人尴尬的错误.幸运的是,有一个中间立场.首先,互斥对象是用于 ...
- C++ 中map 中迭代器的简单使用:
public member function <map> std::map::find iterator find (const key_type& k); const_itera ...
- ASP.NET 生成二维码(采用ThoughtWorks.QRCode和QrCode.Net两种方式)
最近做项目遇到生成二维码的问题,发现网上用的最多的是ThoughtWorks.QRCode和QrCode.Net两种方式.访问官网看着例子写了两个Demo,使用过程中发现两个都挺好用的,Thought ...
- HTTP长连接短连接
一.什么是长连接 HTTP1.1规定了默认保持长连接(HTTP persistent connection ,也有翻译为持久连接),数据传输完成了保持TCP连接不断开(不发RST包.不四次握手),等待 ...
- show processlist 其中status详解(适用于所有概况)
mysql show processlist分析 2011-04-11 16:13:00 分类: Mysql/postgreSQL mysql> show processlist; +—–+—— ...
- [Effective JavaScript 笔记] 第14条:当心命名函数表达式笨拙的作用域
js函数会根据上下文改变其含义. function double(x){return x*2;} 这是一个函数声明,也可以是一个命名函数表达式(named function expression),取 ...
- IOS 中的CoreImage框架
IOS 中的CoreImage框架(framework) - time4cnblogs 时间 2014-03-15 00:24:00 博客园-所有随笔区原文 http://www.cnblogs. ...
- POJ 1308&&HDU 1272 并查集判断图
HDU 1272 I - 小希的迷宫 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64 ...
- Python Django 的 django templatedoesnotexist
django 1.8版本的解决方案 在 setting.py 这个文件里 TEMPLATES = [ ...... #原来的 #'DIRS': [ ], // 这个 列表里添加 template路 ...
- 【Network】一张图看懂 Reactor 与 Proactor 模型的区别
首先来看看Reactor模式,Reactor模式应用于同步I/O的场景.我们以读操作为例来看看Reactor中的具体步骤:读取操作:1. 应用程序注册读就需事件和相关联的事件处理器2. 事件分离器等待 ...