首页 > 编程语言 >C#中?的相关使用

C#中?的相关使用

时间:2023-08-24 20:36:01浏览次数:42  
标签:C# object int num 使用 相关 null

 C#中?的相关使用

1. 可空类型

使用后可以使值类型的变量,既可以接收null也可以接收正常的值类型。

 int? a = null;
 a = 10;

2. 可空运算符

使用?前:

  if(object != null){//方法调用
      object.method();
  }
  if(array != null){ //数组索引
      int a = array[1];
  }

使用?后:

object?.method();
array?[1];

3. 三元运算符 condition?(true result):(false result)

使用?前:

if(object.num!=null)
{
    int num =object.num
}
else
{
    int num=0
}

使用?后:

int oneNum = object.num !=null? object.num : 0;

4. 空合并运算符 ??

使用??前:

int oneNum = object.num !=null? object.num : 0;

使用??后:

int oneNum = object.num ?? 0;

 

总结

null在很多情况下,对于程序而言都是不友好的,我们也极力地避免null的出现。相比较使用各种判断语句而言,?的出现无疑让代码精简了不少,理解性也提高了很多。而且它们之间的嵌套使用(像最后一个例子)在复杂的判断中优势更加的明显。

  分类: C#

标签:C#,object,int,num,使用,相关,null
From: https://www.cnblogs.com/gatran/p/17655087.html

相关文章

  • C++11 四种强制类型转换的区别
    static_cast:指针强转,如果某个基类有多个子类,基类的指针实际是指向A类的对象,但使用强转为B类对象,运行时会报错,静态强转没做检测dynamic_cast:只能用于虚函数类,子类与父类指针互转,会检测,转换失败为返回空,不会崩const_cast:用于转换常量,修改常量,先用一个常......
  • C++拷贝构造、赋值函数
    拷贝构造拷贝构造就是一种特殊版本的构造函数,格式:类名(const类名&that){    //执行给每个成员变量进行赋值  }什么时候会调用拷贝构造:当使用旧对象(已new的)给新对象(新new的)初始化时,会自动调用拷贝构造    Testt1;//调用无参构造Testt2=t1......
  • eclipse安装
    1.下载安装eclipse法一:网盘下载链接:https://pan.baidu.com/s/14FRu6jrT6I58xmFsAFTI5Q提取码:wsen法二:官方下载链接:http://www.eclipse.org/downloads/点击 DownloadPackages 根据系统选择 选择SelectAnotherMirror选择China.. 捐款页面不要理会 下载完成......
  • 使用 conda 管理电脑多个 python 版本
    背景之前一直使用python自带的虚拟环境管理工具(virtualen包),虽然很舒服,可以有不同的软件包环境,但是所有环境都只能基于一个python版本。由于历史原因,系统(Ubuntu)升级时给我新增了一个python3.11,我索性就只保留了这一个版本。这两天要使用open3d,结果发现不支持最新版本的......
  • Hive服务部署相关步骤
    一、hiveserver2服务部署1、配置hadoop下面的core-site.xml文件进入到相应的目录下:cd/root/software/hadoop-3.0.0/etc/hadoop编辑core-site.xml文件,将下面的语句补充到里面:<!--配置访问hadoop的权限,能够让hive访问到--> <property> <name>hadoop.proxyuser.root.host......
  • STM32 使用内部晶振导致 Can 通讯异常
    1、问题背景STM32板间通讯,运行一段时间后Can通讯异常,MCU的Can总线外设停止工作2、问题原因STM32使用了内部晶振,仪器运行一段时间后板卡温度上升(散热设计不足),导致芯片时钟异常3、解决方法使用外部晶振,相对内部晶振,外部晶振更可靠,精度也更高。......
  • g2o编译出现的问题及解决办法 By not providing "FindG2O.cmake" in CMAKE_MODULE_PAT
    在安装完该g2o之后运行一些程序如高翔的ch6代码会出现如下错误:CMakeWarningatCMakeLists.txt:10(FIND_PACKAGE):Bynotproviding"FindG2O.cmake"inCMAKE_MODULE_PATHthisprojecthasaskedCMaketofindapackageconfigurationfileprovidedby"G2O",bu......
  • Arithmetic Progression 题解
    ArithmeticProgression题目大意存在一个打乱了顺序的等差数列\(a\),你可以询问不超过\(60\)次,每次可以以以下两种方式之一进行询问:查询\(a\)中是否有严格大于\(x\)的数。查询\(a_i\)的值。你需要求出这个等差数列的首项和公差。思路分析比较有意思的题。看......
  • CF1850E Cardboard for Pictures 题解
    前言一个月前的一场悲剧qwq传送门没事干写的qwq热乎着的一道题,昨晚上刚考完,然而这是一场悲剧。。。。题解题目大意给定\(a_1~a_n\)和\(c\),求\((a_1+2\timesw)^2+(a_2+2\timesw)^2+...+(a_n+2\timesw)^2=c\)时\(w\)的最小值解析我们来化简一下这个式子:\((a_......
  • C++this指针、常函数
    this指针this指针的类型:类类型*const。不能被修改和赋值。只能在成员函数的内部使用。全局函数、静态函数都不能使用this.this指针本质上其实是一个成员函数的形参(栈),是对象调用成员函数时,将对象地址作为实参传递给this形参。所以对象中不存储this指针。this指针是成......