Keresés

Új hozzászólás Aktív témák

  • Alexios

    veterán

    válasz pmonitor #10049 üzenetére

    Akkor még egyszer utoljára leírom.

    Az állítás nem az volt hogy mindegy melyiket használod _bármelyik_ esetben, hanem hogy _ebben_ az esetben mindegy volt, hiszen ezek ciklusok, nem típusokon lehet végigmenni velük, hanem gyűjteményeken. Az eredeti kérdező kérdése az volt hogy mire jó a foreach, továbbra is fenntartom, hogy az ő esetében az lett volna a lényeg hogy gyűjteményt csináljnon és menjen rajta végig(ahogy végülis meg is csinálta), ezt pedig bármivel megcsinálhatta, foreach/for/while _ebben_ az esetben mindegy, hiszen a gond nem a foreach-el magával volt hanem hogy amit ő szeretett volna abban a formában nem lehet.
    Azt hogy mit lehet módosítani közben, vagy törölni, csak te hoztad ide, senki más nem vitatta, hiszen az állítás nem az volt hogy foreachben az aktuális itemet nem lehet megváltoztatni, hanem hogy az hogy pl. foreach(string a string) miért nem értelmes.

    while() és a for() egyébként csak megerőszakolva működik minden enumeratoron(de nyilván nem erre tervezték.
    Ez egy teljesen mellékszál, de ez nem megerőszakolás, és annyira erre tervezték hogy a foreach egy syntactic sugar ahogy fatal is írta, azaz valójában build után ez while-al fog menni az enumeratoron. Ettől függetlenül te, én, stb, mint végfelhasználó nem így fogjuk írni, hiszen nyilván azért hozták létre a syntactic sugar-t hogy használjuk, de ettől még nem árt tisztában lenni a működésével, és azzal hogy ez nem megerőszakolás.
    Illetve a mindegy nem mindegy részhez annyit, hogy _mindent_ amit foreach-el meg lehet írni, meg lehet for vagy while ciklussal(hiszen a foreach is egy fancy while ciklus), de fordítva ez már nem igaz, szóval fölösleges újabb példákat hozni rá, mert senki nem vitatja ezt.

    +1 a linkedről:
    c#-ban mindennek van egy közös szülőtípusa, úgy hívják object
    Most ha attól eltekintünk hogy tök nyilvánvaló kötekvés ha azt nézzük az eredeti kérdező kérdésének mi volt a lényege, ha jól értem erre a cáfolatod a struct akar lenni [link] itt a hivatalos msdn c# language spec doksi, ez egyértelműen írja hogy All struct types implicitly inherit from the class System.ValueType, which, in turn, inherits from class object
    Tehát minden struct implicit a System.ValueType-ból származik, az pedig az objectből. Ettől még nyilván van lényegi különbség a value és reference típusok között, nem kell cáfolaltot felhozni, ha ez nem tetszik a Microsoft-al vitatkozz, ők tervezték a nyelvet, és ez az ő reference dokumentumuk.

Új hozzászólás Aktív témák

Hirdetés