美文网首页.NET
C#语法糖($)(?.)(??)

C#语法糖($)(?.)(??)

作者: EvanWay | 来源:发表于2017-06-28 13:41 被阅读0次

实际上是C# 6.0对string.Format的改进

将字符串文本标识为内插字符串($)

根据微软的例子来看:

using System;

public class Example
{
   public static void Main()
   {
      string name = "John";
      string greeting = $"Hello, {name}!";
      Console.WriteLine(greeting);
   }
}

相当于原先的string.Format这种必须使用占位符,极容易出错:

string name = "John";
string str = string.Fromat("Hello,{0}!",name);

而使用$则不容易出现错误,可以这样写:

string name = "John";
string str = $"Hello,{name}!";

update:2017-7-20
新增语法糖:(?.)
这也是C#6.0的语法,这叫Null-Conditional Operator(null条件运算符)
我们经常需要判断对象是否为null(不判断呢就会报异常System.NullReferenceException之类的),我们一般像这样:

List<string> list = null;
if (list != null)
{
    string[] strArr = list.ToArray();
}

或者这样

List<string> list = null;
string[] strArr = (list != null ? list.ToArray() : null);

使用这个null条件运算符就可以这样简单的完成这件事了

List<string> list = null;
string[] strArr = list?.ToArray();

解释一下,当 list 为 null 时就不进行后面的ToArray(),返回null,当 list 不为 null 就ToArray();
这里要注意一下,前面strArr这个得是个可null的值


既然说到这个,就来多个(??)
?? 运算符称作 null 合并运算符。 如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。
演示一下:

int? num = null;//前面设定了个可空的int,后面想null时变为0就好
int num1 = num ?? 0;

相关文章

  • C#语法糖($)(?.)(??)

    实际上是C# 6.0对string.Format的改进 将字符串文本标识为内插字符串($) 根据微软的例子来看: ...

  • C#语法糖

    定义 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter ...

  • C#语法糖

    计算机语言中添加某种语法,这种语法对语言的功能没有影响,但是方便程序员使用。使用语法糖增加代码的可读性,减少程序代...

  • C# 7.0 新特性

    C# 7.0 也快要发布了,查看了下new features,感觉C#也越来越有点儿动态语言的感觉了,各种语法糖,...

  • ASP.NET 谨用 async/await

    C# 5.0 引入 async/await 关键字,旨在简化异步编程模型,抛去语法糖就是 Net4.0 的 Tas...

  • C#语法糖大汇总

    1. 经过简化的Property早些时候我们这样声明Property 千篇一律的这样声明,没有多大意义,于是C#...

  • Dart的一些语法糖(持续更新)

    语法糖 ?. 与 ?? dart 语法糖 ?. dart 语法糖 ??

  • Swift语法糖的使用

    Swift语法糖的使用 语法糖的简介 语法糖Selector例子 语法糖的简介 我个人对语法糖的理解就是让你的代码...

  • 浅析ES6 箭头函数(上)

    最初接触 箭头函数 => 是在C# 中的Lambda表达式, Lambda表达式作为CLR4 中新引入的语法糖 本...

  • [KBEngine] KBEngine与ET的优缺点

    都是分布式服务器框架,都有集成寻路导航功能 ET的特点: ET可以共用C#代码、集成await/async语法糖、...

网友评论

    本文标题:C#语法糖($)(?.)(??)

    本文链接:https://www.haomeiwen.com/subject/avrucxtx.html