当前位置:首页 > Windows程序 > 正文

c# ?和?? 用法

2021-03-18 Windows程序

?:可空类修饰符,,是System.Nullable<T>的简写,下面两条语句等效。

  private System.Nullable<System.DateTime> _SubmitDate;

  private DateTime? _SubmitDate;

?:空合并运算符,用于定义可空类的默认值,下面语句当_SubmitDate的值不为NULL时就取_SubmitDate 值,为NULL就取MinValue值。

  _SubmitDate = _SubmitDate ?? System.DateTime.MinValue;

场景

?:欲让一个值类型可为null时用。

  当你用LINQ TO SQL处理数据时,DB表中的SubmitDate datetime NULL,但datetime属于值类型,故项目对应的实体类中SubmitDate属性就得用到"?"

  private System.Nullable<DateTime> _SubmitDate ;

  或 private DateTime? _SubmitDate;

?:欲给可空类型赋默认值,可用"??"空合并运算符

  private DateTime? _SubmitDate;

  _SubmitDate =_SubmitDate?? System.DateTime.MinValue;

用法

引用类型默认可null,故不需要用"?"来实现可空化,值类型才需要可空化,最常用的四种值类型是:

1.DateTime

   private DateTime? _SubmitDate;

  _SubmitDate = _SubmitDate ?? System.DateTime.MinValue;

2.Guid

  private Guid? _SID;

  _SID = _SID ?? System.Guid.NewGuid();

3.bool

  private bool? _IsVip;

  _IsVip = _IsVip ?? false;

4.int

  private int?, _Age;

  _Age = _Age?? 0;

引用类型和可空化后的值类型都可以通过"??"来设置默认值。

温馨提示: 本文由Jm博客推荐,转载请保留链接: https://www.jmwww.net/file/63050.html