C# 中?和??的用法

/ [随笔分类]C#基础 / 没有评论 / 206 浏览

最近在看官方的源码时,经常看到有

 

Int? sum;

 和

 

FileProvider = FileProvider ??builder.GetFileProvider();

一个问号:

 

很多数据类型时不允许为空的,比如int类型,在类型的后面加? 表示允许该数据为null

所以

Int? sum的含义时sum可以为int类型也可以为null

 

 两个问号:

两个数据中间有两个问号,含义是  问号的左边的数据类型为空吗?如果为空,那么返回问号右边的数据,如果不为空,就返回问号左边的数据

所以

FileProvider = FileProvider ??builder.GetFileProvider();

表示  FileProvider为空吗?如果为空,那么FileProvider=builder.GetFileProvider()否则FileProvider = FileProvider

意义和

FileProvider = FileProvider ==null?builder.GetFileProvider():FileProvider;

相同。

        </div>