C# 6.0 新功能Top 10

http://www.developer.com/net/csharp/top-10-c-6.0-language-features.html

1,单行函数表达式化

用=>简化只有一行的函数。

class Employee
{
   // Method with only the expression
   public static int  CalculateMonthlyPay(int dailyWage)  => dailyWage * 30;
}

2,?--条件 运算符

以前需要显式地写判断非空的条件语句

private void GetMiddleName(Employee employee)
{
   string employeeMiddleName = "N/A";

   if (employee != null && employee.EmployeeProfile != null)
      employeeMiddleName = employee.EmployeeProfile.MiddleName;
}

现在可以用一行代码搞定

private void GetMiddleName(Employee employee)
{
   string employeeMiddleName = employee?.EmployeeProfile?.MiddleName ?? "N/A";
}

3,自动属性初始化器

不用再弄一个private的set和类变量了。如下:

class PeopleManager
{
   public List<string> Roles { get; } = new List<string>() { "Employee", "Managerial"};
}

4,主构造函数

通过在类的定义这一层级声明构造函数的入参,取代一个单独的构造函数。入参的范围是类范围,且只在类的初始化时有效,与自动属性初始化器搭配起来好干活。

// Primary constructor
class Basket(string item, int price)
{
   // Using primary constructor parameter values
   // to do auto property initialization.
   public string Item { get; } = item;
   public int Price { get; } = price;
}

5,在函数调用时声明OUT参数

避免在调用函数之前还得专门定义一个out类型的参数:

public bool ConvertToIntegerAndCheckForGreaterThan10(string value)
{
   if (int.TryParse(value, out int convertedValue) && convertedValue > 10)
   {
      return true;
   }

   return false;
}

6,在Catch语句中用await

这样就可以在一个异步操作中处理异步过程中的异常了。

public async void Process()
{
   try
   {
      Processor processor = new Processor();
      await processor.ProccessAsync();
   }
   catch (Exception exception)
   {
      ExceptionLogger logger = new ExceptionLogger();
      // Catch operation also can be aync now!!
      await logger.HandleExceptionAsync(exception);
   }
}

7,异常过滤

可以选择不处理某些异常类型了。

public async void Process()
{
   try
   {
      DataProcessor processor = ne
   }
   // Catches and handles only non sql exceptions
   catch (Exception exception) if(exception.GetType() != typeof(SqlException))
   {
      ExceptionLogger logger = new ExceptionLogger();
      logger.HandleException(exception);
   }
}

8,允许使用 using 静态类

以减少重复代码,比如using Console这个静态类:

using System;
// A static class inclusion
using System.Console;

namespace CSharp6Demo
{
   class Program
   {
      static void Main(string[] args)
      {
         WriteLine("Console. is not required as it is included in the usings!");
      }
   }
}

9,字符串插入值

可以认为是String.Format的改进,可以不再用替代符了,而是直接用变量。

static void Main(string[] args)
{
   string name = "Robert";
   string car = "Audi";
   WriteLine("\{name}‘s favourite car is {car}!");
}

10,Roslyn,新的编译器

开源,且有一个接口供扩展。可以认为是“像服务一样的编译器”。

时间: 2024-10-12 20:07:02

C# 6.0 新功能Top 10的相关文章

VS2015预览版中的C#6.0 新功能(二)

VS2015预览版中的C#6.0 新功能(一) VS2015预览版中的C#6.0 新功能(三) 自动属性的增强 只读自动属性 以前自动属性必须同时提供setter和getter方法,因而只读属性只能通过先声明field,然后property只提供getter方法来实现,无法通过自动属性来实现.在c#6.0中,可以通过如下的形式声明只读的自动属性: public string FirstName { get; } 对于只读的自动属性,其backing field是readonly的,其值可以在属性

REDGATE SQLPROMPT 6.0新功能

原文:REDGATE SQLPROMPT 6.0新功能 REDGATE SQLPROMPT 6.0新功能 下载地址:http://files.cnblogs.com/lyhabc/SQLPrompt6.02013-11-2.rar (1)自动刷新代码提示,当数据库中有对象更改过之后马上可以看到更改后的内容 (2)tab窗口改变颜色(由数据库操作者自己设置颜色,用来提醒自己当前他自己所操作的数据库是在什么环境下) 注意:这个功能是自己手动设置的不是自动的(这个功能只适用于SQLSERVER2012

vSphere 6.0 新功能介绍 系列 前言

最近准备写个系列:vSphere 6.0 新功能介绍 希望大家关注 希望自己坚持下来 vSphere 6.0 新功能介绍 系列 前言

1分钟试用PowerShell 5.0新功能PowerShellGet安装Script Browser和Script Analyzer

微软PowerShell 产品组上周发布了PowerShell 5.0 PowerShellGet功能.有了它,IT 人员可以方便地搜索,安装,更新PowerShell Module.在这篇博客中,我将演示如果使用PowerShellGet安装微软ScriptBrowser和ScriptAnalyzer应用程序. 首先,你需要下载和安装PowerShell 5.0 http://go.microsoft.com/fwlink/?LinkId=398175 安装完成后,启动PowerShell I

VS2015预览版中的C#6.0 新功能(一)

VS2015的预览版在11月12日发布了,下面让我们来看看C#都提供了哪些新的功能. 字符串添写(String interpolation)      在格式化字符串时,string.Format是经常被用到的,它确实很方便使用,但是这种使用占位符,然后通过参数替换的方式还不够方便, 在C#6.0里,String interpolation语法的引入提供了另一种格式化字符串的方式.请看下面的例子:假设我们现在有个如下所示的Book类,现在需要格式化它的字段以输出关于该book的描述. publi

MFC界面库BCGControlBar v25.0新功能详解一:可视化主题

BCGControlBar Pro for MFC最新试用版下载请猛戳>>> 亲爱的BCGSoft用户,我们非常高兴地宣布BCGControlBar Professional for MFC和BCGSuite for MFC v25.0正式发布!我们为您提供开发桌面应用最简单.最有效的方法!接下来几篇文章将对这个版本的新功能一一进行介绍,让您对BCG这个控件有一个全新的认识和了解.需要最新版的可以点击这里[BCG下载] 1. 实现全新的Office 2016 Black主题.虽然MS O

深入解读HBase2.0新功能之高可用读Region Replica

摘要: 基于时间线一致的高可用读(Timeline-consistent High Available Reads),又称Region replica,为HBase带来了高可用读的能力.本文主要介绍region replica这个功能设计的背景,技术细节和使用方法,同时会仔细分析这个功能的优缺点并给出使用建议. 前言 基于时间线一致的高可用读(Timeline-consistent High Available Reads),又称Region replica.其实早在HBase-1.2版本的时候

51CTO博客2.0新功能上线,快来跟我一起用一句话介绍自己

在今天这个万众瞩目世界杯,人人等待端午节的日子里,我们51CTO博客2.0终于又迎来了一次版本更新. 现在大家跟我一起使用本次更新的新功能,用一句话介绍自己吧!! Q:一句话简介可以在那儿被看到? 1. 你的简介可以在个人主页被看大家看到 2. 你的简介可以在文章详情页被大家看到 Q:我的一句话简介要在哪设置? 第一步,点开自己的个人主页.具体位置,如图所示 第二步,点击个人主页,如图所示红框中小蓝笔. PS,如果您点击的是第一步中的博客管理,请按下图操作 第三步,在如图的红框之中写一个不超过2

VMware workstation 11.0.0 新功能及下载地址

近日虚拟机软件VMware Workstation 11.0.0 正式版发布 ,具体版本号为Build 2305329.VMware Workstation可以帮助用户在一台机器上同时运行两个或更多Windows.DOS.LINUX系统,并进行开发.测试.部署新的应用程序. 下载地址: VMware workstation 11.0.0 链接:http://pan.baidu.com/s/1pJ3EfxT 密码:ua0s VMware Workstation 11.0.0 正式版新增功能如下: