解决 Nullable object must have a value in datetime 的最佳方法
best method to solve Nullable object must have a value in datetime
我有一个获取日期时间值的函数,它将日期时间转换为字符串,如您在此处所见:
public string ConvertToPersianToShow(DateTime? datetime)
{
if (datetime.HasValue)
{
PersianCalendar persian_date = new PersianCalendar();
string date;
string year = Convert.ToString(persian_date.GetYear(datetime.Value));
string Month = Convert.ToString(persian_date.GetMonth(datetime.Value));
string day = Convert.ToString(persian_date.GetDayOfMonth(datetime.Value));
date = year + "/" + Month + "/" + day;
return date;
}
else
{
return
"ثبت نشده";
}
}
正如您在此处看到的那样,ConvertToPersianToShow
接受一个参数并且该参数可以为空,因此
string startdate = callenderRepository.ConvertToPersianToShow(item.StartDate.Value);
有时这个值可以为空 item.StartDate.Value
所以我得到了这个错误:
Nullable object must have a value.
所以我必须在代码的第一行检查 item.StartDate.hasvalue
以防止错误。
有没有我可以使用的最佳方法?
此致
由于您的 ConvertToPersianToShow
接受可为 null 的 DateTime
并检查它是否具有值,因此您只需使用可为 null 的对象本身而不是其基础值来调用它:
string startdate = callenderRepository.ConvertToPersianToShow(item.StartDate);
有时 item.StartDate 为空,您尝试通过 item.StartDate.Value 获取其值。使用这个:
string startdate = callenderRepository.ConvertToPersianToShow(item.StartDate);
我有一个获取日期时间值的函数,它将日期时间转换为字符串,如您在此处所见:
public string ConvertToPersianToShow(DateTime? datetime)
{
if (datetime.HasValue)
{
PersianCalendar persian_date = new PersianCalendar();
string date;
string year = Convert.ToString(persian_date.GetYear(datetime.Value));
string Month = Convert.ToString(persian_date.GetMonth(datetime.Value));
string day = Convert.ToString(persian_date.GetDayOfMonth(datetime.Value));
date = year + "/" + Month + "/" + day;
return date;
}
else
{
return
"ثبت نشده";
}
}
正如您在此处看到的那样,ConvertToPersianToShow
接受一个参数并且该参数可以为空,因此
string startdate = callenderRepository.ConvertToPersianToShow(item.StartDate.Value);
有时这个值可以为空 item.StartDate.Value
所以我得到了这个错误:
Nullable object must have a value.
所以我必须在代码的第一行检查 item.StartDate.hasvalue
以防止错误。
有没有我可以使用的最佳方法?
此致
由于您的 ConvertToPersianToShow
接受可为 null 的 DateTime
并检查它是否具有值,因此您只需使用可为 null 的对象本身而不是其基础值来调用它:
string startdate = callenderRepository.ConvertToPersianToShow(item.StartDate);
有时 item.StartDate 为空,您尝试通过 item.StartDate.Value 获取其值。使用这个:
string startdate = callenderRepository.ConvertToPersianToShow(item.StartDate);