2014-11-01 59 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