none
Matriz de objetos de tipo Shape ? RRS feed

  • Pregunta

  • Hola tengo una duda tengo un codigo el cual es este:

    for(int i = 0;i < 10,i++)

    {

    Ellipse[] El = new Ellipse[i];

    El[i].Width = 20;

    El[i].Height = 20;

    El[i].Fill = new SolidColorBrush(Colors.Orange);

    this.children.add(El[i]); 

    }

    en el cual este hereda de un canvas ya que por eso esta la propiedad children.

    entonces mi problema es que cuando compilo, en el cual tengo la referencia try en el codigo lo cual pongo un messagebox en el cual cuando lo comilo me dice que no se puede tener referencia aun objeto nullo y cundo lo soluciono me dice que la matriz esta fuera de rango a que se debe eso? :) att: DavCker

    Gracias de ante mano. 


    DavCkers- White Debugger, Assembler and Dissambler IP Trace Mexico-Guadalajara-Jalisco Tengo 17 años, Mi nombre es Davis Mi Blog Visitelo Please :): http://www.apps-silverlight.blogspot.mx/

    sábado, 28 de abril de 2012 2:15

Todas las respuestas

  • ¡Hola!

    Yo no suelo trabajar con arrays teniendo listas pero en fin, ya que lo has hecho así. Cuando pones esta línea: Ellipse[] El = new Ellipse[i]; por cada elemento del for estas creando un array de elipses de un tamaño i. Es decir primero tamaño 0, 1, 2,3, 4. No te estas refiriendo al elemento 0, 1, 2, 3,... Tal vez est documentación te sirva de ayuda:

    http://msdn.microsoft.com/es-es/library/aa288453%28v=vs.71%29.aspx

    Si lo vas a hacer así deberías de trasladar esa línea de código fuera del for. De esta manera instancias un array de 10 elementos y luego trabajas con el indice dentro del for.

    Saludos,

    • Propuesto como respuesta David_González miércoles, 2 de mayo de 2012 8:20
    sábado, 28 de abril de 2012 19:17
  • Gracias por tu respuesta ya lo había solucionado pero gracias :)

    DavCkers- White Debugger, Assembler and Dissambler IP Trace Mexico-Guadalajara-Jalisco Tengo 17 años, Mi nombre es Davis Mi Blog Visitelo Please :): http://www.apps-silverlight.blogspot.mx/

    lunes, 30 de abril de 2012 5:01
  • Hola DavCker.

    Si, Corsario tiene razon, no estas inicializando bien el array.

    Dejo el codigo de inicializacion de un array (para el que lea el post).

    (tan solo es el equivalente al codigo fuente de la literatura de Corsario ;)

                // Tamaño del array
                int length = 10;
                // dimension del array
                Ellipse[] El = new Ellipse[length];  
                // inicializar array
                for (int i = 0; i < length; i++)
    			{                
                    El[i].Width = 20;
                    El[i].Height = 20;
                    El[i].Fill = new SolidColorBrush(Colors.Orange);
                    this.children.add(El[i]); 			 
    			}


    Saludos
    David González
    MCP, MCTS
    Visita mi Blog en: http://www.dgzornoza.com/

    • Propuesto como respuesta CorsarioVasco miércoles, 2 de mayo de 2012 7:18
    lunes, 30 de abril de 2012 17:18
  • Le hubiese puesto el código, pero prefiero que entienda el por qué no le funciona. Ponerle las dos opciones (explicación + código)hubiera sido lo correcto ;-)

    Un abrazo David.

    miércoles, 2 de mayo de 2012 7:18