2013-05-30 29 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])訪問元素。

檢查你的代碼,看看你在哪裏使用我上面的兩段代碼之一。

相關問題