[Mono-list] Matrix of Objects
A Rafael D Teixeira
rafael.teixeirabr@terra.com.br
Fri, 04 Mar 2005 19:38:26 -0300
Another way is for Celda to be an struct. Arrays of value-types like int
or your structs are preinitialized. objects like String and other
classes are reference types and must be created as Jonathan pointed out.
public struct Celda
{
public int Valor ;
public Celda(int V) {
Valor = V;
}
public override string ToString(){
return "("+Valor+")";
}
}
Now your original class Terreno should work as it was...
HIH,
On Thu, 2005-03-03 at 09:07, Jonathan Pryor wrote:
> On Wed, 2005-03-02 at 22:30 +0000, Phillip Neumann wrote:
> > Hello...
> >
> > I wonder how to work with arrays of objects.
>
> <snip/>
>
> > when executing i get:
> > System.NullReferenceException: Object reference not set to an instance
> > of an object
> >
> > how shall i create my matrix?
>
> Your example is equivalent to this:
>
> string[] array = new string[10];
> array[0].Length; // throws NullReferenceException
>
> The above will also generate a NullReferenceException. The reason is
> because the array is separate from the objects it contains; you created
> an array, but never put anything in it.
>
> The correct approach would be this:
>
> // create array
> string[] array = new string[10];
>
> // populate
> for (int i = 0; i < array.Length; ++i)
> array[i] = "some string" + i.ToString();
>
> // access array
> int total_length = 0;
> for (int i = 0; i < array.Length; ++i)
> total_length += array[i].Length;
>
> Or for your matrix code in the Terreno constructor:
>
> // create matrix
> _Matrix = new Celda[px,py];
>
> // populate matrix
> for (int i = 0; i < px; ++i)
> for (int j = 0; j < py; ++j)
> _Matrix[i, j] = new Celda ();
>
> - Jon
>
>
> _______________________________________________
> Mono-list maillist - Mono-list@lists.ximian.com
> http://lists.ximian.com/mailman/listinfo/mono-list
>
> E-mail classificado pelo Identificador de Spam Inteligente Terra.
> Para alterar a categoria classificada, visite
> http://www.terra.com.br/centralunificada/emailprotegido/imail/imail.cgi?+_u=rafael.teixeirabr&_l=1,1109851947.488687.3159.cabue.terra.com.br,3962,Des15,Des15
>
> Esta mensagem foi verificada pelo E-mail Protegido Terra.
> Scan engine: McAfee VirusScan / Atualizado em 02/03/2005 / Versão: 4.4.00 - Dat 4438
> Proteja o seu e-mail Terra: http://www.emailprotegido.terra.com.br/
--
Rafael "Monoman" Teixeira
Mono Hacker since 16 Jul 2001 - http://www.go-mono.org/
Mono Brasil Founding Member - http://monobrasil.redesolbrasil.org/
English Blog: http://monoblog.blogspot.com/
Brazilian Portuguese Blog: http://monoblog.weblogger.terra.com.br/