繁体   English   中英

如何检查是否输入了日期

[英]how to check if date is entered

我有一个方法:

public IEnumerable<Something> MethodName(DateTime? checkin, DateTime? checkout, int year){}

从这种方法,我如何检查用户是否输入了签入日期。 这就是我所做的,但我得到一个错误:我想我没有使用正确的操作员来检查日期。

   if (checkin.HasValue){
List<Name> l =FileName.NameofMethod(checkin)
} else if (checkin.HasValue && checkout.HasValue){
List<Name> l =FileName.NameofMethod2(checkin, checkout, year)
}

如果我返回列表,这种方法会起作用吗? 目前我收到一个错误说:

Error   8   The best overloaded method match for 'ProjectName.FileName.NameofMethod(System.DateTime, System.DateTime, int)' has some invalid arguments 

我也得到错误:

Error   9   Argument 1: cannot convert from 'System.DateTime?' to 'System.DateTime'

这意味着什么。 因此,如果选择了一个日期,则在选择了两个日期时触发方法,然后触发另一个执行其他操作的方法

你应该使用DateTime? 而不是DateTime类型。 '?' 使DateTime可以为空,因此如果没有输入数据,它将包含null。

所以你的方法签名将如下所示:

public IEnumerable<Something> MethodName(DateTime? checkin, DateTime? checkout, int year){}

然后,您可以将if-condition更改为以下内容:

if (checkin.HasValue)
{
   //do something....
} 
else if (checkin.HasValue && checkout.HasValue)
{
   //do something else...
}

如果您不想更改类型,可以将其与DateTime.MinValue进行比较

if(checkin != DateTime.MinValue)

由于这是DateTime的默认值,因此如果用户不设置任何内容,将为checkin分配此值。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM