System.NullReferenceException: 未将对象引用设置到对象的实例

sybj1089 2010-04-04 08:47:21
float[] a ={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
byte[] pReadBuffer = new byte[184];
ZSPLC.ReadByteFromDB(1, 8, 184, out pReadBuffer);
for (int i = 0; i < 10; i++)
{
int b = 20 * i;
byte[] c =new byte[4]{ pReadBuffer[b + 3], pReadBuffer[b + 2], pReadBuffer[b + 1], pReadBuffer[b] };
a[i] = System.BitConverter.ToSingle(c, 0);
DataClass.RealData[i] = a[i];

}
运行以上代码 出现如题的错误。刚开始能正常运行,但在一段不确定的时间后就会出错。
...全文
87 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
leafank 2010-04-04
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 xray2005 的回复:]

具体是哪一句错误了?

DataClass.RealData[i] = a[i];//这句的话,看看RealData[i] 的大小是否和a[]一样。
[/Quote]
这个也只会抛OutOfIndex
wuxing2006 2010-04-04
  • 打赏
  • 举报
回复
要养成一个好习惯,不确定的值,都要检查过再使用
wuxing2006 2010-04-04
  • 打赏
  • 举报
回复
空异常嘛,判断判断就行了
sybj1089 2010-04-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 wuyq11 的回复:]
单步跟踪那里出错
判断值是否为 null
主要应该是pReadBuffer
[/Quote]
嗯 明白了~ 加了个判断语句!谢谢!
wuyq11 2010-04-04
  • 打赏
  • 举报
回复
单步跟踪那里出错
判断值是否为 null
主要应该是pReadBuffer
xingyuebuyu 2010-04-04
  • 打赏
  • 举报
回复
float[] a ={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
byte[] pReadBuffer = new byte[184];
if(ZSPLC!=null)
{
ZSPLC.ReadByteFromDB(1, 8, 184, out pReadBuffer);
}
else
{
return;
}

for (int i = 0; i < 10; i++)
{
int b = 20 * i;
byte[] c =new byte[4]{ pReadBuffer[b + 3], pReadBuffer[b + 2], pReadBuffer[b + 1], pReadBuffer[b] };
a[i] = System.BitConverter.ToSingle(c, 0);
if(DataClass!=null)
{
DataClass.RealData[i] = a[i];
}
else
{
return;
}

}

进行变量检查.
xray2005 2010-04-04
  • 打赏
  • 举报
回复
具体是哪一句错误了?

DataClass.RealData[i] = a[i];//这句的话,看看RealData[i] 的大小是否和a[]一样。
threenewbee 2010-04-04
  • 打赏
  • 举报
回复
ZSPLC是一个你自己的对象,它可能有时候丢出不正常的数据
可能是pReadBuffer为null。

110,569

社区成员

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

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

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