deklaracja tablicy klas

0

Mam taką klasę:

    class neuron
    {
        int wejscie;
        public void SETwejscie(int a)
        {
            wejscie = a;
        }
        public int GETwejscie()
        {
            return wejscie;
        }
    }

I w programie deklaruję ją tak:

neuron[,] nn = new neuron[3, 50];

A następnie odwołuję się do niej tak:

nn[0,0].SETwejscie(5);

Przy tym odwołaniu program mi wyrzuca błąd:
"Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu".
Co robię źle? </b>

0

Prawdopodobnie dlatego, ze tworzysz tablice, ale nie tworzysz elementow, ktore sie maja w niej znalezc. Musisz w petli (po utworzeniu tablicy) zainicjowac kazdy z elementow tablicy. A dopiero potem wywolywac na nich metody (np SETwejscie).

P.S.

SETwejscie dziwnie brzmi ;p Wez to zmien na np. SetInput

0

faktycznie, jak umieściłem po deklaracji taki kod:

nn[0, 0] = new neuron();

to zadziałało ;-)

0

Te metody set i get w łatwy sposób możesz zamienić na właściwość(property). Zobacz przykład:

    public class Neuron
    {
        private int input;

        public int Input
        {
            get { return input; }
            set { input = value; }
        }
    }

Użycie:

            Neuron[,] neurons = new Neuron[10, 10];
            for (int i = 0; i < neurons.GetLength(0); i++)
                for (int j = 0; j < neurons.GetLength(1); j++)
                {
                    neurons[i, j] = new Neuron();
                    neurons[i, j].Input = i + j;
                    Console.WriteLine(neurons[i, j].Input);
                }
0
mykhaylo napisał(a)

Te metody set i get w łatwy sposób możesz zamienić na właściwość(property). Zobacz przykład:

    public class Neuron
    {
        private int input;

        public int Input
        {
            get { return input; }
            set { input = value; }
        }
    }

A w C# 3.0:

public class Neuron
{
    public int Input { get; set; }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1