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

实际上是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;
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,785评论 18 399
  • 定义 语法糖(Syntactic sugar),也译为糖衣语法,是由英国计算机科学家彼得·约翰·兰达(Peter ...
    丶PanPan阅读 6,033评论 5 20
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,027评论 19 139
  • 今天给大家分享下怎么用微信公众号赚钱的 首先必须注册开通微信公众号,说到这里 不知道你们有多少人有注册微信公众号的...
    淡淡的紫夜阅读 347评论 1 0
  • 今天是七夕,第一天注册简书,我有一个可爱的女儿,怀孕后便在家做全职妈妈,女人结了婚,有了孩子,身材变形,脾气变差,...
    我是安妮妈咪阅读 180评论 0 0