我正在尝试使用SqliteDataReader
读取数据库记录。不幸的是,如果我的数据库中的某些日期为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。通用退货类型是否适用于这种情况?