日期转换中出现NullReference异常

本文关键字:NullReference 异常 转换 日期 | 更新日期: 2023-09-27 18:22:36

我正在进行HijriGregorian的日期转换。然而,我收到了这个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 "";
        }
    } 

日期转换中出现NullReference异常

这意味着您正在访问引用类型变量null上的字段、属性或方法(或访问Nullable<T>结构上的.Value)。我们不能告诉你在哪里,但ex.StackTrace可以,也可以添加一个断点,在出错的地方附近遍历代码,查看无赖null(或缺少null检查的正确的null

的变量等
WhatEver cur = new WhatEver();

这意味着您使用的对象没有初始化它。使用new关键字初始化它。