Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我创建了一个类来管理串行端口,它允许我将 ROM 代码发送到在机器人上运行的虚拟机。
这是声明:
public byte[] mensaje_a_enviar = new byte[4097];
有时我只发送 20 个字节或更少,但有时我必须一次发送 4097 个字节......
奇怪的问题是,这个字节数组在运行时会调整为更小的东西(比如 10 个字节)。例如,当我尝试再次填充 100 个字节时,这显然会引发溢出异常......
我的程序中只有一个此类的实例。
为什么会发生?
您的代码中的其他地方
mensaje_a_enviar = //Somthing
或者
SomeFunction(ref mensaje_a_enviar)
然后在里面SomeFunction你有类似第一行的东西。
SomeFunction
这两个示例所做的是将数组替换为从等号右侧返回的新数组。您应该只将数组作为参数传递给函数,而不使用引用 ( SomeFunction(mensaje_a_enviar)) 或通过索引器 ( mensaje_a_enviar[i]) 访问元素。
SomeFunction(mensaje_a_enviar)
mensaje_a_enviar[i]
检查你的代码,看看你在哪里使用我上面的两段代码之一。