日期转换中出现NullReference异常
本文关键字:NullReference 异常 转换 日期 | 更新日期: 2023-09-27 18:22:36
我正在进行Hijri
到Gregorian
的日期转换。然而,我收到了这个NullReferenceException
错误消息:
对象引用未设置为对象的实例。
pprivate HttpContext cur;
private const int startGreg=1900;
private const int endGreg=2100;
private string[] allFormats={"yyyy/MM/dd","yyyy/M/d",
"dd/MM/yyyy","d/M/yyyy",
"dd/M/yyyy","d/MM/yyyy","yyyy-MM-dd",
"yyyy-M-d","dd-MM-yyyy","d-M-yyyy",
"dd-M-yyyy","d-MM-yyyy","yyyy MM dd",
"yyyy M d","dd MM yyyy","d M yyyy",
"dd M yyyy","d MM yyyy"};
private CultureInfo arCul;
private CultureInfo enCul;
private HijriCalendar h;
private GregorianCalendar g;
public void Dates()
{
cur = HttpContext.Current;
arCul=new CultureInfo("ar-SA");
enCul=new CultureInfo("en-US");
h=new HijriCalendar();
g=new GregorianCalendar(GregorianCalendarTypes.USEnglish);
arCul.DateTimeFormat.Calendar=h;
}
public string HijriToGreg(string hijri)
{
if (hijri.Length<=0)
{
cur.Trace.Warn("HijriToGreg :Date String is Empty");
return "";
}
try
{
DateTime tempDate=DateTime.ParseExact(hijri,allFormats,
arCul.DateTimeFormat,DateTimeStyles.AllowWhiteSpaces);
return tempDate.ToString("yyyy/MM/dd",enCul.DateTimeFormat);
}
catch (Exception ex)
{
cur.Trace.Warn("HijriToGreg :"+"'n"+ex.ToString());
return "";
}
}
这意味着您正在访问引用类型变量null
上的字段、属性或方法(或访问Nullable<T>
结构上的.Value
)。我们不能告诉你在哪里,但ex.StackTrace
可以,也可以添加一个断点,在出错的地方附近遍历代码,查看无赖null
(或缺少null
检查的正确的null
)
WhatEver cur = new WhatEver();
这意味着您使用的对象没有初始化它。使用new关键字初始化它。