C# ?和??使用讲解
场景1:使用?定义可空类型
众所周知,C#中的值类型是不可以为null的,如果必须为null,则需要将变量定义为可空类型,如下所示:
int? age = null;
场景2:使用?检查null值
一般我们写代码时,为了避免代码出现空异常System.NullReferenceException,都会写很多的判断语句
Address address = null; if (address != null) { Console.WriteLine(address.PostCode); } Console.ReadLine();
在C#的新语法中,我们可以通过?来检查null值,这样可以减少很多不必要的判断
Address address = null; var postCode = address?.PostCode; Console.WriteLine(postCode); Console.ReadLine();
场景3:使用??设置默认值
在写代码过程中,经常会碰到当变量为null值设置默认值的情况,原来的写法可能是这样的:
int? age = null; if (!age.HasValue) { age = 18; } Console.WriteLine(age); // 输出18 Console.ReadLine();
在C#的新语法中,可以通过??来设置默认值,如果变量值为null,取??右边的值,如果不为null,取变量的值
int? age = null; Console.WriteLine(age ?? 18); // 输出18 age = 20; Console.WriteLine(age ?? 18); // 输出20 Console.ReadLine();

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Linux环境下如何编译C++程序
Linux环境下如何编译C++程序 前言 前段时间面试C++开发,总是被问其Linux编程. 虽然申请的不是服务器开发岗,但是都毫无例外的问我Linux,看来真的挺重要的. 虽然找工作已经告一段落了,但是学习不应该停下脚步。 趁着现在时间比较自由,恶补一波Linux吧。 从第一个小程序开始。 Hello,Linux! 打开终端,输入指令 [jason@localhost ~]$ vim hello.cpp 1 会进入一个vim编辑器,然后点击键盘上的insert健开始进入编辑模式,如书代码如下: #include<iostream> using namespace std; int main(){ cout<<"Hello Linux"<<endl; return 0; } 1 2 3 4 5 6 点击Esc 键退出编辑模式,然后输入冒号和wq ,退出vim编辑器。 输入指令 [jason@localhost ~]$ g++ hello.cpp -o hello [jason@localhost ~]$ ./hello 1 2 3 得到如下 至此,第...
- 下一篇
.Net Linq与Lambda表达式中GroupBy以多个字段分组
原文: .Net Linq与Lambda表达式中GroupBy以多个字段分组 一、引入 基本上熟悉C#语言的没有不知道Lambda表达式的,其对于数据的处理真的是太方便了。其中分组处理的GroupBy方法在List中的使用非常广泛。正式近期一个功能需求中又遇到了,而且是需要GroupBy多个字段的。现在功能已经完成,处理得到了想要数据,就顺便来记录一下,方便下次的查阅。 二、代码 这里我就直接贴出来我的项目代码了,写的不规范的地方还请海涵。。。 注:1、list是从数据库中获取到的List集合,需要就这个集合中的两个字段(account,room_id)进行分组 2、ViewPlayerRecord是一个实体类,用于传递显示在前端的相关字段 3、该Lambda表达式实现了以两个字段分组再获取自己想要的数据的功能,虽然简单,但是长时间不用还真容易忘记细节。 4、GroupBy(x => new {x.a , x.b, x.c }).Select( x=> ( new Class名 { a=x.Key.a , b=x.Key.b , c = x.Key.c ...
相关文章
文章评论
共有0条评论来说两句吧...