C#中的?操作符

Posted mol1995

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C#中的?操作符相关的知识,希望对你有一定的参考价值。

一、1个?的用法

1. 表示可空数据类型,如 int? bool?

2. 跟在对象后,如该对象为null,则不会触发空值异常,且整个表达式返回null,如:

string kk = "123";

volcalc=null; //volcalc为复合对象

kk=volcalc?.digVm?.outCeiling?.outRing();

结果:kk=null;

又如:当innerCeiling为null时,该表达式返回null。digvm.innerCeiling?.outRing?.Split(" \r\n".ToCharArray(), StringSplitOptions.RemoveEmptyEntries).ToList();

但包含的?对象不能被赋值,如语法错误(?在对象的最后也不行):digvm.outCeiling?.outRing = "abc"; //错误表达式

 

二、??的用法

??可连接两个对象,表示如果前面的对象为null则取后面的对象

int? ii=null;
string cc=null;
ii = ii ?? 5;
cc = cc ?? ii.ToString();

结果:cc="5"

 

三、3元表达式 aa?bb:cc

aa为1逻辑表达式,如果aa=true,返回bb,否则返回cc

以上是关于C#中的?操作符的主要内容,如果未能解决你的问题,请参考以下文章

从 C# 中的操作重定向到查看页面

C#中的IO流操作(FileStream)

C#中的文件类操作(待补充)

C#中的原子操作

C#操作sqlite数据库表中的boolean项

DocX在C#中的基本操作方法