从具有DateTime返回类型的方法返回null

时间:2016-03-30 13:52:02

标签: methods nullable

我正在尝试使用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。通用退货类型是否适用于这种情况?

0 个答案:

没有答案