Comparing nullable DateTime?

前端 未结 5 1001
星月不相逢
星月不相逢 2020-12-10 10:03

Looking for a better way to compare a nullable date time than the following:

Any suggestions?

// myobject.ExpireDatetime is of DateTime?
//
if (!myob         


        
5条回答
  •  北海茫月
    2020-12-10 10:56

    The compiler lifts variables and generates code to check for nulls.

    > new DateTime?()
    null
    > DateTime.Now > null
    false
    > DateTime.Now < null
    false
    
    > new int?()
    null
    > 10 >= null
    false
    > 10 =< null
    false
    > 10 == null
    false
    > 10 != null
    true
    

    Knowing this you can write simple code.

    // d is a DateTime? 
    DateTime now = DateTime.Now;
    
    bool after = d > now;
    bool before = d < now;
    bool today = d?.Date == now.Date;
    

    If d is null everything will be false, else it will work like normal DateTime comparison.

提交回复
热议问题