Mi a hiba az alábbi C# kóddal?
void AzonostKeres(ref FaElem aktuális, Fotó keresett)
{
try
{
if(aktuális != null)
{
if(aktuális.tartalom.Equals(keresett))
{
throw new VanMárIlyenKépKivétel(keresett);
}
AzonostKeres(ref aktuális.bal, keresett);
AzonostKeres(ref aktuális.jobb, keresett);
}
}
catch (VanMárIlyenKépKivétel e)
{
Console.WriteLine("Van már ilyen kép! Újrapróbálkozáshoz írjon be 1-est!");
}
}
Egy objektumokkal feltöltött bináris fát jár be rekurzívan és keres egy, a megadottal megegyező objektumot, és ha talál dobnia kellene egy kivételt. A probléma, hogy sosem teszi. Mit rontottam el?
Minek itt a referencia szerinti paraméter átadás?
Magyar változónevek, függvények? Komolyan?
Ráadásul a hibakezelés is borzalmas.
A konzolra írsz valami random üzenetet egy kereső függvényben??
Semmi keresnivalója ott.
Mivel direkt megpróbáltam beletenni egy objektumot aminek minden argumentuma és tulajdonsága pontosan egyezik, és mégsem dobott kivételt, ezért rosszul gondolod.
Valamiért nem akar igazat adni az
aktuális.tartalom.Equals(keresett)
kifejezésre.
Ezekszerint nem tudod mi az a referencia.
Definiáld felül az Equals metódust, akkor jó lesz.
Már elég régota kínlódsz ezzel a kóddal itt, de már az alapfelépítésnél gondok vannak.
Újra kéne gondolni mit akarsz csinálni és úgy felépíteni az osztályokat.
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
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!