2011-07-14 13 views
5

que declarar una matriz de bytes de esta manera:C#: ¿Por qué la inicialización no funciona con una matriz de bytes?

Byte[] b = new Byte[10]; 

y asignar algunos valores:

for (int i=0; i<b.Length; i++) 
{ 
    b[i] = 1; 
} 

ahora quiero poner a cero la matriz de nuevo y llamar:

b.Initialize(); 

la que doesn no funciona La matriz permanece sin cambios. ¿No es b una matriz de tipo valor?

+1

Array.Clear es probablemente lo que está buscando – Jimmy

Respuesta

11

Ver MSDN:

Precaución

Puede utilizar este método sólo en los tipos de valor que tienen los constructores; sin embargo, los tipos de valores que son nativos de C# no tienen constructores.

byte es nativo.

+1

Quizás más revelador del artículo de MSDN: "Este método está diseñado para ayudar a los compiladores a admitir matrices de tipo valor; la mayoría de los usuarios no necesitan este método". – user7116

+0

@Marc: Correcto, no leí la nota de precaución en MSDN con suficiente cuidado. – chessweb

+1

@Ramhound no, no hará tal cosa. Eso crea una nueva matriz; no restablece nada excepto la variable. Absolutamente no reinicia la matriz. –

Cuestiones relacionadas