Kezdőoldal » Számítástechnika » Programozás » C# nullreferenciaexception...

C# nullreferenciaexception hibakód OOP?

Figyelt kérdés

Belefutottam egy hibába, amire hosszú keresgélés után sem találtam megoldást, hálás lennék minden segítségért.

teljes hibakód: An unhandled exception of type 'System.NullReferenceException' occurred in ConsoleApp7.exe

Az objektumhivatkozás nincs beállítva semmilyen objektumpéldányra.


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;


namespace ConsoleApp7

{

public enum Faj { kutya, panda, nyul };


class Allat

{

public Faj Fajta { get; set; }

public string Nev { get; set; }

public bool Nem { get; set; }

public int Suly { get; set; }

public Allat(Faj Fajta, string Nev, bool Nem, int Suly)

{

this.Fajta = Fajta;

this.Nev = Nev;

this.Nem = Nem;

this.Suly = Suly;

}

}

class Ketrec

{

int jelenlegi=0;

public int Meret { get; set; }

public Allat[] Lista { get; set; }

public Ketrec(int meret)

{

this.Meret = meret;

}


}

class Program

{

static void Main(string[] args)

{

Ketrec[] k = new Ketrec[2]

{

new Ketrec(5),

new Ketrec(3),


};

Allat[] a = new Allat[3]

{

new Allat(Faj.kutya,"Kormos",true,20),

new Allat(Faj.panda,"Kajás",false,320),

new Allat(Faj.kutya,"Krumpli",true,10)

};

int n = 0;


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

{

for (int j = 0; j < k[i].Meret; j++)

{

k[i].Lista[j] = a[i]; //ITT JELEZ

n++;

}

}


}

}

}



#c#;OOP
2018. febr. 14. 10:55
 1/3 anonim ***** válasza:

Nem csoda, hisz sehol nem adtál értéket a "Lista" nevű változónak.


Egyébként szar a koncepció, tömbnek alapból lekérdezhető a méret, de úgy egyáltalán miért tömb is miért nem Pl lista?

2018. febr. 14. 12:39
Hasznos számodra ez a válasz?
 2/3 anonim ***** válasza:

El nem tudom képzelni, miből állt nálad a hosszú keresgélés, ha még egy pofonegyszerű NullReferenceException is kifog rajtad.


Ez a hiba röviden azt jelenti, hogy úgy próbálsz egy objektummal dolgozni, hogy annak nem adtál előzőleg értéket. Egyik tipikus változata, ami itt is történt, amikor egy tömb valamelyik elemére hivatkozol anélkül, hogy létrehoztad volna a tömböt.


Tehát a Ketrec konstruktorból hiányzik ez:


Lista = new Allat[meret];

2018. febr. 14. 13:03
Hasznos számodra ez a válasz?
 3/3 anonim ***** válasza:

Miért hívsz egy tömböt Listának?

A dolgokat amúgyis szemantika szerint kell/érdemes elnevezni, nem típus szerint.

A nevet sem Szövegnek nevezed vagy a méretet Számnak.

2018. febr. 14. 14:00
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!