Hirdetés
- Luck Dragon: Asszociációs játék. :)
- ldave: New Game Blitz - 2026
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Toomy: FOXPOST: régen jó volt, de már jobban jársz, ha elfelejted
- sziku69: Fűzzük össze a szavakat :)
- GoodSpeed: Te hány éves vagy?
- Magga: PLEX: multimédia az egész lakásban
- gban: Ingyen kellene, de tegnapra
- sziku69: Szólánc.
- eBay-es kütyük kis pénzért
Új hozzászólás Aktív témák
-
C^^
őstag
válasz
Jester01
#2140
üzenetére
Pedig így működik.
A specifikáció azt mondja, hogy "Enumerators are positioned before the first element until the first MoveNext() call."
Jelen esetben ez az akt=null a konstruktorban.
Ha ezek után nincs benne a MoveNext()-ben az if (akt==null) akt=elso;, akkor soha nem fog ráállni az első elemre. (Dob is egy NullReferenceExeptiont.)Így is működik:
public bool MoveNext()
{
akt = akt.KovetkezoElem;
return akt != null;
}
Viszont akkor a konstruktorban egyből az első elemre kell állítani az aktot, ami szintén ellentmond a specifikációnak.Van egy olyan érzésem, hogy még mindig nem értek valamit.

-
C^^
őstag
Sziasztok,
Egy kis segítséget szeretnék kérni.
Adott egy generikus, egyirányú láncolt lista, amit be kéne járni foreach ciklussal.
Ehhez ugyebár a listának implementálnia kell az IEnumerable interfészt, amihez kell egy "felsoroló" generikus osztály, ami implementálja az IEnumerator-t (generikus formában).Ez idáig rendben is van, meg is írtam a "felsoroló" osztályt, illetve a listában implementálva van az IEnumerable interfész, hibát sem dob a fordító, viszont futásnál a foreach-t mintha egyszerűen átugraná a program.
Így néz ki a "bejáróm":
class ListaBejáró<T>:IEnumerator<T>
{
ListaElem<T> elso, akt;
public ListaBejáró(ListaElem<T> elso)
{
this.elso = elso;
akt = null;
}
public T Current
{
get { return akt.Adat; }
}
public void Dispose()
{
elso = null;
akt = null;
}
object System.Collections.IEnumerator.Current
{
get { return this.Current; }
}
public bool MoveNext()
{
if (akt==null)
{
akt = elso;
return false;
}
else
{
akt = akt.KovetkezoElem;
return true;
}
}
public void Reset()
{
akt = null;
}
}Így pedig az IEnumerable implementáció:
public IEnumerator<T> GetEnumerator()
{
ListaBejáró<T> bejaro = new ListaBejáró<T>(ElsoElem);
return bejaro;
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator()
{
return this.GetEnumerator();
}ListaElem<T> objektumokból áll maga a láncoltlista. Az objektumnak van "Adat" mezője, és egy referenciája a következő elemre "KovetkezoElem" néven.
Magának a listának van egy "ElsoElem" mezője, ami értelemszerűen a lista első elemét jelöli.
Mi lehet a hiba?
Előre is köszönöm.
Új hozzászólás Aktív témák
● ha kódot szúrsz be, használd a PROGRAMKÓD formázási funkciót!
- TCL LCD és LED TV-k
- Apple asztali gépek
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- Warhammer 40.000
- Úgy állhat le a 16 GB-os GeForce RTX 5060 Ti gyártása, hogy közben nem áll le
- HiFi műszaki szemmel - sztereó hangrendszerek
- Apple iPhone 17 Pro Max – fennsík
- CES 2026: ámulás és bámulás a Keychron háza táján
- BMW topik
- OTP Bank topic
- További aktív témák...
- iPhone 13 128GB gyári független gyári 94% akku számlával
- Fujitsu LifeBook E5410 üzleti laptop i5 Gen10 / 16GB RAM / 512GB SSD / Újszerű akku-szép állapot
- HPE ProLiant DL380 Gen7 --2x Intel Xeon X5650 -48GB ram -6 x 1TB HDD
- Eladó Apple iPhone 17 Pro 256GB Kozmosznarancs
- HPE Smart array P440 PCIe3 x8 SAS Controller (749797-001)
- Dell Latitude E7470. Olcsó üzleti kategóriás laptop! Új akkumulátor!
- Apple iPhone 14 Pro Max / 128GB / Kártyafüggetlen / 12Hó Garancia / Akku: 87%
- Új könyv: Harrari: Sapiens Rajzolt történelem
- ASUS ROG Cetra True Wireless Gaming fülhallgató új, garanciával!
- HIBÁTLAN iPhone 15 Pro 128GB Blue Titanium -1 ÉV GARANCIA -Kártyafüggetlen
Állásajánlatok
Cég: Laptopszaki Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest



