MemoryStream

30/09/2004 - 17:46 por Clever | Informe spam
Que tal Masters!

Aprovechando de su experiencia...

Tengo un objeto MemoryStream y que intento leer asi(en C#):

objMemStr.Read =(cadBytes, 0, objMemStr.Length) ;}

pero me marca que no puedo pasar de Long a int en
objMemStr.Length, pero lo he tratado de convertir a
int con Convert.ToIntxx y me marca fuera de rango

Alguien sabe que pudiera estar pasando o le ha pasado en
c#?

De antemano, GRacias.
 

Leer las respuestas

#1 Alx Sharp
30/09/2004 - 18:52 | Informe spam
Hola...

La firma del método es Read([in, out] byte[] buffer, int offset, int count);
El parámetro count que espera es de tipo int, mientras que el valor de la
propiedad Length que intentas pasar es de tipo long.
Cuando he llamado el método, simplemente hago un casting y no tengo mayor
problema:

objMemStr.Read(cadBytes, 0, (int)objMemStr.Length);

Si la longitud del MemoryStream fuera tan grande que no pudiera tratarse
como un int, se perderían datos, por lo que pienso que sería mejor si se
leyera el stream por partes.
Cuando haces un casting de un tipo de mayor capacidad como long a un tipo de
menor capacidad como int, se rellena el int y los datos que no caben se
pierden.

Espero que sirva...

Saludos...

"Clever" escribió en el mensaje
news:0cae01c4a704$ad6c7310$

Que tal Masters!

Aprovechando de su experiencia...

Tengo un objeto MemoryStream y que intento leer asi(en C#):

objMemStr.Read =(cadBytes, 0, objMemStr.Length) ;}

pero me marca que no puedo pasar de Long a int en
objMemStr.Length, pero lo he tratado de convertir a
int con Convert.ToIntxx y me marca fuera de rango

Alguien sabe que pudiera estar pasando o le ha pasado en
c#?

De antemano, GRacias.

Preguntas similares