c#获取并设置访问者日期时间

Tim*_*Tim 2 c# asp.net

我收到在我的属性中检测到无法访问的代码.这适用于常规字符串字段,但不适用于DateTime数据类型.

private DateTime m_RenewalDate;
    public DateTime M_RenewalDate
            {
                get { return m_RenewalDate != null ? m_RenewalDate : DateTime.MinValue; }
                set { m_RenewalDate = value; }
            }
Run Code Online (Sandbox Code Playgroud)

这是我的sqldatareader

reader.GetDateTime(reader.GetOrdinal("M_RENEWALDATE"))
Run Code Online (Sandbox Code Playgroud)

dri*_*iis 10

DateTime是值类型,不能为null.因此,getter中的代码无法访问:

return m_RenewalDate != null ? // always evaluates to true
       m_RenewalDate :         // and therefore always returns this
       DateTime.MinValue;      // The code never hits this case.
Run Code Online (Sandbox Code Playgroud)

如果数据库中的字段可以为null,那么您可能希望将该属性声明为可为空的DateTime : DateTime?.