gpt4 book ai didi

c# - 检查未初始化的 DateTime 属性?

转载 作者:行者123 更新时间:2023-12-05 01:03:53 25 4
gpt4 key购买 nike

我有一个有很多属性的类,其中两个是日期:

public class AchFile
{
public DateTime FileDate { get; set; }
public DateTime EffectiveDate { get; set; }
// other properties

public int Insert()
{
//Set file date
if (FileDate == null)
{
FileDate = DateTime.Today;
}

//Set effective date
if (EffectiveDate == null)
{
EffectiveDate = ServiceUtil.NextBusinessDay(InterfaceId, FileDate);
}

return //....
}
}

当我创建类的实例时,我没有定义 EffectiveDateFileDate。如果我调用 .Insert() 这会导致问题,因为 DateTime 对象不能是 null 因此,那些 if 语句将无法正确访问。

更新 if 语句的最佳方法是什么?

以下内容有意义吗?

// Default value for a DateTime object is MinValue
if (FileDate == FileDate.MinValue)
{
FileDate = DateTime.Today;
}

if (EffectiveDate == EffectiveDate.MinValue)
{
EffectiveDate = ServiceUtil.NextBusinessDay(InterfaceId, FileDate);
}

最佳答案

如果 DateTime.MinValue 永远不会是这些属性的 正常 值,您可以对照它们进行检查。不过这感觉有点不愉快,因为它实际上变成了一个神奇的值。

另一种选择是使属性可以为空:

public DateTime? FileDate { get; set; }
public DateTime? EffectiveDate { get; set; }

然后你可以对照null检查它们,这将是默认值。

请注意,如果您真的只表示日期,那么如果您使用的是 .NET 6,我建议您使用 DateOnly 类型来明确这一点。

关于c# - 检查未初始化的 DateTime 属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/73205197/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com