Kezdőoldal » Számítástechnika » Programozás » Kezdo C#-s vagyok, szeretnek...

Kezdo C#-s vagyok, szeretnek tisztazni par dolgot?

Figyelt kérdés

Azon tunodok, hogy a C#-ben nem kell felszabaditani semmilyen tombot. Ha van egy byte[]-om pl. nem kell foglalkozzak a felszabaditasaval. Meg akkor se ha kozben egy Exception-t dob a programom. Ezert nincsenek is destruktorok a C#-ben jol ertem?


Igen am, de a minap talalkoztam a "using" kulcsszoval, nem ertettem mire jo ez igy utana jartam, es azt csinalja hogy meghivja a Dispose-t. Es ez az a pont ami miatt ugy erzem hogy el lett baltazva a C#, mert nehany esetben igen is meg kell hivni a felszabaditast, akkor megis csak kene legyen destruktor benne? Ez egy tervezesi hiba lenne?


2022. okt. 6. 10:01
1 2
 1/17 anonim ***** válasza:
94%

"Azon tunodok, hogy a C#-ben nem kell felszabaditani semmilyen tombot."

A kulcsszó, amit keresel: Garbage Collector: [link]


"Ezert nincsenek is destruktorok a C#-ben jol ertem?"

Van:

[link]

2022. okt. 6. 10:21
Hasznos számodra ez a válasz?
 2/17 anonim válasza:
37%

Nem érteni valamit és kérdezni szabad, de nem érzed egy kicsit bicskanyitogatónak, hogy 3 percnyi fejlesztői tapasztalatoddal kritizálsz valamit, amit több évtizedes tapasztalatú szakemberekből álló csapatok alkottak?

Az ilyet, mint Te úgy hívják felénk, hogy bohóc.

2022. okt. 6. 10:51
Hasznos számodra ez a válasz?
 3/17 anonim ***** válasza:
77%

#2: nem érzek benne túl sok kritikát, csak feltételezés volt a tervezési hiba. Bár azt azért sokan belátják, hogy a C# nem a világ megváltója.

Egyébként OFF: Linuxosként mondom, hogy azt is nyilván szakemberekből álló csapat alkotta meg, csak a szakembereknek úgy látszik, valami nagyon beszívott logikájuk volt, amikor a parancsokat találták ki...

2022. okt. 6. 11:02
Hasznos számodra ez a válasz?
 4/17 anonim válasza:
26%

#3: A "tervezési hiba" az "nem túl sok kritika"?

Mi nem egy nyelvet beszélünk?

2022. okt. 6. 11:26
Hasznos számodra ez a válasz?
 5/17 anonim ***** válasza:
93%
#4: kérdés volt a "tervezési hiba", nem állítás. Amíg kérdés, addig nem kritika, hanem érdeklődés, amire akár az is lehetne a válasz, hogy "igen, ez egy ismert gyengesége a nyelvnek", de az is, hogy "nem tervezési hiba, hanem azért van így, mert ....".
2022. okt. 6. 11:33
Hasznos számodra ez a válasz?
 6/17 A kérdező kommentje:

Miert, nektek nem ellentmondo az hogyha egy byte[] arrayt letrehozok, akkor nem kell felszabaditsak semmit. De ha pl. a BinaryWriter-t hasznalom, akkor mar fel kell szabaditsam a dolgokat Dispose-val??


Most akkor vagy legyen a programozora bizva hogy felszabaditja a memoriat, de akkor mindig. Vagy ha nem, akkor minden szabaduljon fel automatikusan. Valasztani kene, nem osszekeverni a kettot hogy egyszer igy egyszer ugy.

2022. okt. 6. 11:39
 7/17 A kérdező kommentje:
Vagy akkor minden utasitas utan nezzem meg a dokumentacioban hogy meg kell-e hivni a Dispose-t hozza...
2022. okt. 6. 11:43
 8/17 anonim ***** válasza:
47%

Alapvetően nem érted az "erőforrás" fogalmát.

A memória egy erőforrás.

Egy file egy erőforrás.

Egy socket egy erőforrás.


A C# a memória nevű erőforrás menedzselését veszi csak át a fejlesztőtől, sose állította magáról, hogy minden más erőforrás kezelését is megoldja.

Erre való a dispose, hogy az ilyen egyéb unmanaged erőforrásokat, mint egy filehandle, vagy egy socket, stb., te kezeld.

2022. okt. 6. 12:16
Hasznos számodra ez a válasz?
 9/17 anonim ***** válasza:
91%

"Vagy akkor minden utasitas utan nezzem meg a dokumentacioban hogy meg kell-e hivni a Dispose-t hozza..."

Vagy megérted a logikáját.

Ahogy #8 is leírta (és egyébként sok helyen, könyvben, interneten, ahol a nyelvvel foglalkoznak, ez le van írva), hogy a memóriakezelés során valósul meg a szemétgyűjtés. De ez a legtöbb (talán az összes?) hasonló elven működő nyelvnél így van.


"vagy legyen a programozora bizva hogy felszabaditja a memoriat"

A BinaryWriter nem memória. (Oké, persze, van a memóriában adminisztratív információ róla, de rajta keresztül nem a memóriát, mint erőforrást éred el, hanem egy fájlt. Az meg nem a memória.)


Nem hiszem, hogy annyira nehéz megérteni, hogy mi szabadul fel magától, és mi nem.

Ha meg nem tetszik ez a fajta logika, létezik még rengeteg programozási nyelv a világon, amiben nincs szemétgyűjtés. Nem kell mindenkinek C#-ban, meg Javában programoznia. Ott van például a C++. Egy hatékony, szép nyelv, és jóval kevesebb dolgot vállal át a programozótól.

2022. okt. 6. 12:25
Hasznos számodra ez a válasz?
 10/17 anonim ***** válasza:
4%

"A c# egy szar nyelv"

Nem az.

2022. okt. 6. 12:46
Hasznos számodra ez a válasz?
1 2

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!