c#入门-可空值类型

可空值类型

在值类型后面加?可以让这个值类型可以使用null值。
这个功能是的确地改变了类型,并不是注释。

可空值类型的运算

可空值类型的运算会先检测两者之间是否有null值。如果有null那么结果就是null。
如果双方都不是null,则按照他们类型自己定义的运算规则来计算。

int? a = null;
int b = 1;
Console.WriteLine(a + b == null);//true
Console.WriteLine(b - a == null);//true
a = 10;
Console.WriteLine(a + b == null);//false
Console.WriteLine(b - a == null);//false

但是关系运算例外,只要有一方是null,结果就会得到false。
当然,如果双方都是null,那么相等判断时会得出true。

在这里插入图片描述
如果为true,代表这个字符串有内容。如果字符串是null或“”,都会得到false。而且这个过程不会出错。

bool的可为空类型

但是可空bool类型除外。类似于逻辑运算中的短路。
进行与运算和或运算时,如果一方可以得出结果,则另一方是不是null无所谓。

bool? b = null;
Console.WriteLine(true|b);//true
Console.WriteLine(b|true);//true
Console.WriteLine(false&b);//false
Console.WriteLine(b&false);//false

bool可为空类型不能直接当作流程控制语句的条件。在这里插入图片描述

还原值类型

将一个可空值类型还原成原本的类型,只需要通过类型转换表达式即可。
或者访问他的Value属性。
但在值为null时,这两种方法都会报错。
在这里插入图片描述
一个可空值类型,其实就是记录了两个属性,
一个bool值,表示是否为null。
一个是原本的值类型,表示记录的值。

空短路的内容访问

如果要访问可空值类型的内容,可以先转换为原类型获得。
但是如果使用空短路,则可以直接对内容进行访问。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值