关键字 ?

可空类型修饰符                ?
int i? num=null;//表示可空的整型

DateTime time? dateTime=null; //表示可空的时间

三元(运算符)表达式      ?:
x?y:z //表示如果表达式x为true,则返回y,如果x为false,则返回z,是省略if{}else{}的简单形式。

NULL检查运算符              ?.
int? firstX = points?.FirstOrDefault()?.X;//如果对象为NULL,则不进行后面的获取成员的运算,直接返回NULL

                                                    ?[ ]
int? first = customers?[0].Orders.Count();

                                          ?[ ]?
public static Delegate? Combine(params Delegate?[]? delegates)
{
if (delegates == null || delegates.Length == 0)
return null;

Delegate? d = delegates[0];
for (int i = 1; i < delegates.Length; i++)
d = Combine(d, delegates[i]);

return d;
}
//params Delegate?[] delegates -它是可为空的数组 Delegate

//params Delegate?[]? delegates -整个数组可以为空

空合并运算符                         ??
//用于定义引用类型和可空类型的默认值。如果此运算符的左操作数不为Null,则此操作符将返回左操作数,否则返回右操作数。

var c = a??b //当a不为null时返回a,为null时返回b

null 合并赋值运算符               ??=
仅当左操作数计算为 null 时,才能使用运算符 ??= 将其右操作数的值分配给左操作数。
List<int> numbers = null;
int? i = null;

numbers ??= new List<int>();
numbers.Add(i ??= 17);
numbers.Add(i ??= 20);

Console.WriteLine(string.Join(" ", numbers)); // output: 17 17
Console.WriteLine(i); // output: 17
【C#】?的7种用法_c# ??-CSDN博客     

posted @   爱学习VS  阅读(4)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示