Methods 从DateTime返回类型为的方法返回null
我正在尝试使用Methods 从DateTime返回类型为的方法返回null,methods,nullable,Methods,Nullable,我正在尝试使用SqliteDataReader读取数据库记录。不幸的是,如果my db中的某些日期为null或空,则使用以下方法: GetDateTime() GetString() 抛出类型为System.InvalidCastException的异常。我考虑扩展DataReader类: public static DateTime TryGetDateTime(this SQLiteDataReader rdr, int n) { DateTime ? dt = new Date
SqliteDataReader
读取数据库记录。不幸的是,如果my db中的某些日期为null或空,则使用以下方法:
- GetDateTime()
- GetString()
System.InvalidCastException
的异常。我考虑扩展DataReader
类:
public static DateTime TryGetDateTime(this SQLiteDataReader rdr, int n)
{
DateTime ? dt = new DateTime();
try
{
dt = rdr.GetDateTime(n);
}
catch(System.InvalidCastException)
{
dt = null;
}
return dt;
}
无法编译此扩展方法,因为默认情况下,
DateTime
不是可为空的数据类型。如果你能帮助我克服这个问题,我将不胜感激。如果可能,我希望TryGetDateTime()
返回DateTime
,如果引发异常,则返回null。一般退货类型是否适用于这种情况 什么意思是“不能编译为日期时间”?编译器说什么?或者是“此扩展方法无法编译,因为DateTime在默认情况下不是可为null的数据类型。”引发的错误?return dt变为红色Swiggly-无法将null转换为DateTime,因为它是不可为null的值类型