C# 中?和??的用法
最近在看官方的源码时,经常看到有
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;
相同。