在c#中编辑任务调度程序触发器时为空引用

时间:2011-03-17 08:48:32

标签: c# scheduler

if(t!= null)总是为null为什么有帮助.. 当我试图在变量名t中获取值时,它总是进入else部分,但我确信在tat变量中存在valuse。

private void button3_Click(object sender, EventArgs e)
      {
            try
            {
                if (search=="")
                {

                }
                else
                {
                    if (textBox1.Text=="")
                    {
                        MessageBox.Show("Select A Task Or Find One");
                    }
                    else
                    {
                        search = textBox1.Text;
                    }
                                 }
                if (search != null)
                {
                    t = tasks.OpenTask(search);
                    if (textBox2.Text!="")
                    {

                    short hour = short.Parse(textBox2.Text.Substring(0, 2));
                    short minute = short.Parse(textBox2.Text.Substring(3, 2));
                        if (t != null)  // this is null dont know why
                    {
                        foreach (Trigger tr in t.Triggers)
                        {
                            if (tr is StartableTrigger)
                            {
                                (tr as StartableTrigger).StartHour = hour;
                                (tr as StartableTrigger).StartMinute = minute;
                            }
                        }
                        t.Save();
                        t.Close();
                    }
                    tasks.Dispose();
                    button2.Visible = true;
                    textBox3.Visible = true;
                    search = "";
                    }
                    else
                    {
                        MessageBox.Show("Enter Time ");
                    }
                }
            }
            catch (Exception b)
            {
                MessageBox.Show(b.ToString());
               // MessageBox.Show("Select A Task From The List ");
            } 

        }

帮助伙计们..我试过调试但是没有突破..

2 个答案:

答案 0 :(得分:0)

t为null,因为tasks.OpenTask(search)返回null。 可能没有符合您搜索条件的任务。

你为什么要首先处理tasks

答案 1 :(得分:0)

你的源代码中的任何地方,你写过这样的东西MyClass t = new MyClass()..其中t是你的类对象。如果你还没有声明,它将永远为空。

或者你可能已经宣布了这样的事情 私人任务;但忘记添加新关键字。结帐!!!