ConvertNullDate扩展方法
本文关键字:方法 扩展 ConvertNullDate | 更新日期: 2023-09-27 18:16:59
这门课怎么了?我试图达到扩展方法,但不能
namespace BO
{
public static class Helper
{
public static DateTime? ConvertNullDate(this DateTime date)
{
return date != DateTime.MinValue ? date : (DateTime?)null;
}
}
}
如果不可能,解决方案应该是什么
如果您的输入是DateTime?
,那么您不需要将其转换为DateTime?
!
所以我认为你应该在
下面public static DateTime? ConvertNullDate(this DateTime date)
{
return date != DateTime.MinValue ? date : (DateTime?)null;
}
问题将是它所在的namespace
。您需要在代码文件(您想在其中使用它的那个)的顶部添加一个using
。例如,如果namespace
是foo
,那么添加:
using foo;
那么现在你可以输入:
DateTime? dt = DateTime.Now;
var newDt = dt.ConvertNullDate();
,但我质疑输入值。目前您将其定义为this DateTime? date
,但我认为您希望输入值为DateTime
,如this DateTime date
,因此您可以这样做:
var dt = DateTime.MinValue.ConvertNullDate();
, dt
的值为null
。换句话说,如果不可空的DateTime
的值是MinValue
,则返回null
,否则返回日期,但为DateTime?
类型。
您应该尝试返回default(Datetime?)
而不是null:
public static DateTime? ConvertNullDate(this DateTime? date)
{
if (date != null && date.Value != DateTime.MinValue)
return date;
return default(DateTime?);
}