2013-05-30 16 views
-3

我创建了一个类来管理串行端口,它允许我将ROM代码发送到机器人上运行的虚拟机。在c#中执行期间字节[]数组的大小发生变化#

这是声明:

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

有时候我只发送20字节或更少,但有时我不得不在只有一个镜头发送4097个字节...

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

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

为什么会发生?

+3

向我们展示了您实际尝试发送以及堆栈跟踪的代码。 – Woot4Moo

+2

'奇怪的问题是,这个字节数组在运行时调整大小(比如10个字节)。“不,从不。你是这么想的。 – I4V

+0

在执行过程中某处正在调用“mensaje_a_enviar =”某处。您可能需要发布更多代码才能获得有关此问题的帮助。 –

回答

2

别的地方在你的代码中有

mensaje_a_enviar = //Somthing 

SomeFunction(ref mensaje_a_enviar) 

内。然后SomeFunction你碰到这样的第一线。

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

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

相关问题