2014-11-01 62 views
0

嗯,這個問題已經引起了我的問題,現在相當一段時間:-(字節[]爲byte [INT] - C#

總之

,我有這樣的代碼:

 byte[] code; 
     byte[] moreCodes; 
     int x = moreCodes.Length; 
     code = moreCodes[x]; // Error !! 

我也曾嘗試方法

for(int i = 0; i < moreCodes.Length; i++) 
    { 
     code = moreCodes[i]; // Error !! 
    } 

所以我的問題是,如何申請/代碼幾個字節複製到一個空字節的容器? 字節[]代碼現在還是空的,我想使這個字節包含完整的內容o f更多的代碼。

另一種想法,我必須是使用for循環&適用moreCodes本身,就像這樣:

for(int i = 0; i < moreCodes.Length; i++) 
    { 
     moreCodes = moreCodes[i] ; // Error !! 
    } 

如何實現修復這個問題的任何想法,將不勝感激,我覺得這是我應該能夠解決的一個愚蠢的問題,但它是我無法理解的那些人中的一員。

感謝您閱讀

+0

如果你真的想複製完整的內容,並且更多的代碼已經有內容,它只是'byte [] code = moreCodes;'。你是否想要實現其他目標? – 2014-11-01 03:47:08

回答

1

現在你不能編譯,因爲你是單字節混合字節數組。數組保存字節,但嘗試使數組僅等於一個字節是沒有意義的。

此外,在運行時,您將在moreCodes.Length上收到錯誤。

這是因爲您沒有「空白字節容器」,您根本沒有任何容器。

嘗試

List<byte> moreCodes = new List<byte>(); 

,然後你可以添加到它

moreCodes.Add(0xAA); 

,並在添加所有的數據,把它變成一個數組:

code = moreCodes.ToArray(); 

或者,如果你事先知道所需的長度,你可以使用一個數組:

byte[] moreCodes = new byte[72]; // here [72] specifies the size 
for(int i = 0; i < moreCodes.Length; ++i) 
    moreCodes[i] = (byte)i; // here [i] accesses one byte within the array 
+0

這是一個非常好的答案,最後我明白了常用List方法的用法。謝謝 ! – Hellooo123 2014-11-01 04:00:30