Bob's Blog

Web开发、测试框架、自动化平台、APP开发、机器学习等

返回上页首页

c#中的各种问号和点的用法



最近在看c#,因为打算试一下blazor和MAUI的混合开发,自己记录一下各种问号和点的用法,最近总觉得要混淆。

1. ?

声明的变量可以为空,可用于int或datetime类型等。比如 int? length = null; 

比如 int? length = area?.length; (如果area为null则length为null,如果area不为null则length为area的length)

2. ?.和?[]

一个问号后面带一个点或者带一个方括号。

对应的是如果前面的表达是null,则返回null,否则返回后面的方法或元素。

比如 a?.x  a?[x],如果a是null,则都返回null。如果a不是null,则返回a.x和a[x]。

3. ??

null合并运算。

比如 b = a ?? "s" (如果a为null,b的值就是后面的字符s,如果a不为null,b的值就是a的值)

4. ??=

null合并赋值。

比如numbers ??= new List<int>(); numbers为null时才会把右边赋值给它。

5. ?:

这个是三目运算符。如果表达式为正向,则返回前一个,否则返回后一个。

condition ? consequent : alternative  ,   is this condition true ? yes : no

另外a ? b : c ? d : e等同于a ? b : (c ? d : e)

下一篇:  Blazor Hybrid在mac上的调试
上一篇:  解决问题PytorchStreamReader failed reading zip archive

共有0条评论

添加评论

暂无评论