我的 C# 类有一个日期/时间属性,我将使用 Code First 将其映射到 SQL Server 数据库中的列。此日期永远不会早于或接近默认日期 ( DateTime )。如果我将属性键入 System.DateTime
,那么我总是可以使用 MyProp == default( DateTime )
检查未设置的值。
是否有令人信服的理由将此属性键入(可空)DateTime?
而不是(不可空)DateTime
?为什么?
最佳答案
在我看来,某种类型的标记值(如整数)在与记录 ID 相关时是有意义的。当零是合法的值(value)时(因为值(value)也可能是负数),它就没有意义了。日期总是有意义的,因此 null 作为“我们不知道什么时候”的值更能提供信息。我还认为它使“给我所有没有日期的记录”查询看起来更清晰。
关于c# - 可空 DateTime 与依赖默认值 ( DateTIme ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19693850/