设为首页 加入收藏

TOP

C# 6.0的新特性 (二)
2018-04-19 06:04:02 】 浏览:338
Tags:6.0 特性
son["y"]);   }   return null;   }

如果null 那么null

如果不null 那么执行

我们也可以连环地使用问点运算符 ,简化后如下:

  
//finally

  public static Point FromJson2(JObject json)

  {

  if (json?["x"]?.Type == JTokenType.Integer &&

  json?["y"]?.Type == JTokenType.Integer)

  {

  return new Point((int)json["x"], (int)json["y"]);

  }

  return null;

  }

这样,这个if条件就只表达你的核心意图,而不用花太多的代码再null判断上。

Null条件运算符对触发时间非常有用,如

OnChanged?.Invoke(this,arg)

而不用在单独去判断委托是否为空,当委托不为空时,执行右边的Invoke()方法。

  7.Nameof运算符

很多情况下,我们需要以运算符的形式获取程序元素的名称,Nameof运算符然我们获取元素名称的字符串,知道元素到底指的是什么,是哪些元素,并确保它确实存在。  

public void Add(Point point)

  {

  if(point==null)

  throw new ArgumentNullException(nameof(point));

  }

  8.异常塞选器

异常塞选器可以让catch在捕获异常之前对异常进行筛选,如果异常符合我们的要求,则进行捕获,异常筛选如下:

 
 try

  {

  ...

  }

  catch (ConfigurationException e)when (e.IsSevere)

  {

  ...

  }

  9.在catch和finally中使用await

越来越多的api采用异步的方式,现在我们也总算可以在catch和finally中调用它们了。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇C语言解题:读入两个小于100的正.. 下一篇C语言实现二叉树的插入和删除(实..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目