-5

我正在努力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 "";
        }
    } 
4

3 回答 3

1

这意味着您正在某处访问引用类型变量null(或访问结构).Value上的字段、属性或方法。Nullable<T>我们无法告诉您在哪里,但ex.StackTrace可以,就像添加断点并单步执行错误位置附近的代码,查看变量等以查找流氓null(或缺少-check的正确) nullnull

于 2013-07-16T08:47:55.637 回答
0
WhatEver cur = new WhatEver();
于 2013-07-16T08:51:14.970 回答
0

这意味着您正在使用一个对象而不对其进行初始化。使用 new 关键字来初始化它。

于 2013-07-16T08:53:19.450 回答