-3

我创建了一个类来管理串行端口,它允许我将 ROM 代码发送到在机器人上运行的虚拟机。

这是声明:

public byte[] mensaje_a_enviar = new byte[4097];

有时我只发送 20 个字节或更少,但有时我必须一次发送 4097 个字节......

奇怪的问题是,这个字节数组在运行时会调整为更小的东西(比如 10 个字节)。例如,当我尝试再次填充 100 个字节时,这显然会引发溢出异常......

我的程序中只有一个此类的实例。

为什么会发生?

4

1 回答 1

2

您的代码中的其他地方

mensaje_a_enviar = //Somthing

或者

SomeFunction(ref mensaje_a_enviar)

然后在里面SomeFunction你有类似第一行的东西。

这两个示例所做的是将数组替换为从等号右侧返回的新数组。您应该只将数组作为参数传递给函数,而不使用引用 ( SomeFunction(mensaje_a_enviar)) 或通过索引器 ( mensaje_a_enviar[i]) 访问元素。

检查你的代码,看看你在哪里使用我上面的两段代码之一。

于 2013-05-30T23:25:16.473 回答