[ Foro de C# ]

variable fixed

05-Nov-2012 13:35
tomario ma
1 Respuestas

hola tengo una estructura con una variable fixed, que no consigo despues sacarla por pantalla, me pueden ayudar, les dejo el cogigo.
gracias

 
unsafe public struct Message
        {
 
            public fixed byte Data[8];
        }
 
public static void Display(ref Message msg)
            {
                for (int i = 0; i < SizeOf(msg.Data[8]); i++)
                { 
                 System.Console.Write("dato es: {0}",Data[i])
                }
 
            }
 



27-Nov-2012 13:56
Nacho Cabanes (+32)

Perdona el retraso en contestar, pero he estado como tres semanas sin entrar por el foro.

No entiendo qué pretendes. Una variable "fixed" tiene que ver con la recolección de basura, y esto a su vez suele ser importante únicamente en el caso de usar memoria dinámica (punteros), que tú no estás usando.

Por eso, tu programa no necesita "fixed" para nada, o al menos no el fragmento que muestras. Tampoco dices qué problemas tienes, ni incluyes un "Main" que nos permita probarlo, pero supongo que querrás mostrar los caracteres que forman "Data", y en ese caso, tu "for" no debería recorrer hasta el tamaño del octavo dato, sino hasta el tamaño de todo el array, así:

 
for (int i = 0; i < 8; i++)
 


o incluso así (pero más peligroso, porque SizeOf quizá no se comporte siempre como creo que tú esperas):

 
for (int i = 0; i < SizeOf(msg.Data); i++)
 


(observa que he quitado el [8])






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)