出现Object reference not set to an instance of an object这样的错误不知道如何处理

Kindybox 2013-07-28 04:03:09
public partial class MainWindow : Window
{
private int[] parameterArray;
public bool parameterHasChanged = true;
private ICommandCanalService commandCanalService;

public MainWindow()
{
InitializeComponent();
this.Loaded += MainWindow_Loaded;
}
void MainWindow_Loaded(object sender, RoutedEventArgs e)
{



AddParametersToArray();

CommandInput command = new CommandInput(1, 1, 1, new int[6] { Convert.ToInt32(DateTime.Now.Second.ToString()),
Convert.ToInt32(DateTime.Now.Minute.ToString()),Convert.ToInt32(DateTime.Now.Hour.ToString()),
Convert.ToInt32(DateTime.Now.Day.ToString()),Convert.ToInt32(DateTime.Now.Month.ToString()),
Convert.ToInt32( DateTime.Now.Year.ToString())});



commandCanalService.Enqueue(command);


}

private void AddParametersToArray()
{
if (this.parameterHasChanged)
{
CreateArrayAndResetParameterChanged(6);
this.parameterArray[5] = Convert.ToInt32( DateTime.Now.Second.ToString());
this.parameterArray[4] = Convert.ToInt32(DateTime.Now.Minute.ToString());
this.parameterArray[3] = Convert.ToInt32(DateTime.Now.Hour.ToString());
this.parameterArray[2] = Convert.ToInt32(DateTime.Now.Day.ToString());
this.parameterArray[1] = Convert.ToInt32(DateTime.Now.Month.ToString());
this.parameterArray[0] =Convert.ToInt32( DateTime.Now.Year.ToString());
}
}


private void CreateArrayAndResetParameterChanged(int p)
{
this.parameterArray = new int[p];
this.parameterHasChanged = false;
}

private new void ManipulationBoundaryFeedback(object sender, ManipulationBoundaryFeedbackEventArgs e)
{
e.Handled = true;
}
}


这是我的代码运行到commandCanalService.Enqueue(command);的时候出现Object reference not set to an instance of an object这样的报错,如何处理,各位大侠帮帮忙
...全文
44838 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kindybox 2013-07-28
  • 打赏
  • 举报
回复
本人是C#初学者,希望各位大侠多多指点
Kindybox 2013-07-28
  • 打赏
  • 举报
回复
你好,sp1234 我这个总是检测到commandCanalService==null,我不知道如何初始化这个变量, 如果我写 if(commandCanalService==null) { ......} 则检测异常 如果我写成 if(commandCanalService!=null){ ......} 则不运行if内的代码 希望你能指点一下如何初始化commandCanalService,使其不为null
人生导师 2013-07-28
  • 打赏
  • 举报
回复
这个异常信息就是你某个变量为null了,这个只需要用鼠标移动异常的位置,查看下那个变量没有初始化就使用了方法了,然后初始化下就可以解决了
  • 打赏
  • 举报
回复
这基本上不是什么形式化地“处理”的问题。形式上的处理往往都是自欺欺人的。 当你在写程序时,你认为一个变量一定是已经赋值得到了实际对象的。如果运行时遇到这个“指向null”异常,那么你应该开始调试程序,追踪前边的代码(或者程序调用堆栈上更深层入口方法)为什么没有给这个变量传递值(对象)。这往往是因为程序逻辑错误造成的,你应该搜索一下你到底有没有为 commandCanalService 这个变量赋值。 如果你仅仅是写个
if(commandCanalService==null)
{
     ......
}
这虽然能够让你的程序不抛出异常了,可是没有解决逻辑错误问题,你还是没有搞清楚为什么没有给 commandCanalService 变量赋值。
threenewbee 2013-07-28
  • 打赏
  • 举报
回复
commandCanalService没有被初始化。

111,130

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧