C#中 ? 和 ??操作符的意思

本文深入解析Nullable数据类型及其转换机制,通过双问号操作符实现Nullable类型到非Nullable类型的安全转换。重点讨论了如何在实际编程中灵活运用这些概念,特别聚焦于字符串参数的非空检查与初始化。此外,文章还介绍了Nullable类型的特性,如HasValue属性,以及如何利用这些特性避免空引用异常。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 

int? x = null;
int y = x ?? -1;

默认情况下,int类型的变量是值类型,不能赋值null.以下是解释

为了实现Nullable数据类型转换成non-Nullable型数据,就有了一个这样的操作符”??(两个问号)“,双问号操作符意思是取所赋值??左边的,如果左边为null,取所赋值??右边的,比如int y = x ?? -1 如果x为空,那么y的值为-1.

于是这时候就可以把最上面第二段代码改成:

string strParam= Request.Params["param"]?? "";

另外还有”?(单问号)“修饰符,是System.Nullable<T>的缩写形式,比如int?代表是可空的整形,例如:int? a = 1 或者 int? b=null。Nullable类型具有一个HasValue的bool类型只读属性,当Nullable类型实例的该属性为true时,则表示该实例是非空实例,包含一个已知值Value,HasValue为false时,访问Value属性将导致System.InvalidOperationException。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值