C# ? and ?? 操作符

本文介绍了 C# 中 Nullable 类型的使用方法及其与 null 合并运算符(??)的关系。Nullable 类型允许整型等值类型接受 null 值,这对于数据库操作尤其有用。null 合并运算符则提供了一种简洁的方式,在变量为 null 时返回备选值。

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

              DataTime ?  表示此类型可以为null,可以为其赋值为null,尤其是在数据库操作中, 比如年龄 我们会定义为 int age; 为其附默认值一般为0,但是我们一般不希望在这样,所以如果在定义时int?age;则可以为其赋值为null。

  int?与Nullable<int>一样。其定义如下:

    

public class AlterNativePriority
    {
        public string AlterNativePriorityID { get; set; }
        public string Priority { get; set; }
        public string Object { get; set; }
        public string Remark { get; set; }
        public string IsAvailable { get; set; }
        public Nullable<Int32> ChangeCount { get; set; }
        public string LastUpdatedUserID { get; set; }
        public DateTime? LastUpdatedDate { get; set; }
        public string Plant { get; set; }
    }

            ?? 运算符称作 null 合并运算符。 如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数.

         可以为 null 的类型可以表示类型的域中的值,或者值可以是未定义的(在这种情况下,值为 null)。 当左操作数具有一个值为 null 的可以为 null 的类型时,可以使用 ?? 运算符的语法表现力来返回适当的值(右操作数)。 如果在尝试将可以为 null 值的类型分配给不可以为 null 值的类型时没有使用 ?? 运算符,则会生成编译时错误。 如果使用强制转换,且当前未定义可以为 null 值的类型,则会引发 InvalidOperationException 异常。


参考:https://docs.microsoft.com/zh-cn/dotnet/csharp/language-reference/operators/null-conditional-operator

https://docs.microsoft.com/zh-cn/dotnet/csharp/programming-guide/nullable-types/index


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值