C#Nullable<T>可空的值类型,C#中的?使用整理

一、Nullable<T>可空类型,指定一个值类型可以分配null

在C#中Nullable<T>用于表示该类型是可以为空的一个类型。它被定义为结构(struct)而非一个类(class)....

语法 T? 是 System.Nullable<T> 的简写,此处的 T 为值类型。这两种形式可以互换,例如:Nullable<int>简写为int?

可空类型可表示一个值,或表示不存在任何值。例如,类似 String 的引用类型就是可空类型,而类似 Int32 的值类型不是可空类型。Nullable 结构支持将值类型扩展为可以为null,但不支持在引用类型上使用,因为引用类型本身就是可空的。

比较常用的场景是对应数据库表中可用字段。

    //
    // 摘要:
    //     表示可分配有 null 的值类型。
    //
    // 类型参数:
    //   T:
    //     System.Nullable`1 泛型类型的基础值类型。
    public struct Nullable<T> where T : struct
    {
        //
        // 摘要:
        //     将 System.Nullable`1 结构的新实例初始化为指定值。
        //
        // 参数:
        //   value:
        //     一个值类型。
        [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
        public Nullable(T value);

实例:

Nullable<int> number1 = null;
//或者
//int? number1 = null;
Console.WriteLine(number1);
number1 = 2;
Console.WriteLine(number1);


二、C#中还有一种??,双问号这是C#6.0添加的Null值得条件操作符

??在赋值语句中使用,如果当前变量为Null,赋值右边的结果。

这个运算符可以解决三目运算符中可空类型判断问题:

 int num = number1 == null ? 0 : number1.Value;
这种写法在语法上出错。

int num = number1 ?? 1;
这种写法正确。

实例:

int? number1 = null;
int num = number1 ?? 1;
Console.WriteLine(number1);



更多:


C# 6.0新特性整理

C#编码规范整理

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值