[英]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.