今天推荐的其实是一个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)。
- 空值传播操作或也称nulletcaozuofu.html" target="_blank">操作符(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