Kezdőoldal » Számítástechnika » Programozás » Mikor használjak readonly...

Mikor használjak readonly változót és mikor csak olvasható propertyt?

Figyelt kérdés
Mikor melyiket?
2016. jún. 6. 18:21
 1/10 A kérdező kommentje:
C#
2016. jún. 6. 18:21
 2/10 anonim ***** válasza:

Tudod, mi a readonly?

Tudod mi az "get only"?


Mi a különbség?

Segítség: classon kívülről ugyanaz a helyzet, classon belül lesz más.

2016. jún. 6. 19:57
Hasznos számodra ez a válasz?
 3/10 SimkoL ***** válasza:

Nagyon egyszerűen megfogalmazva:

A ReadOnly a program, programozó számára írható és olvasható, a felhasználó csak olvashatja és nem módosíthatja, míg az 'olvasható' tulajdonságot mindketten csak olvashatják. Ezek általában olyan tulajdonságok melyek vagy öröklődtek - akár az op. rendszertől is - vagy mást 'rántanának' magukkal és nem kívánjuk lekezelni - nem látjuk szükségét -.

2016. jún. 6. 20:55
Hasznos számodra ez a válasz?
 4/10 anonim ***** válasza:

#2: sztem te rosszra gondolsz, nem a readonly propertyre, hanem amikor a setter privát, nem így van?

Ha a setter privát, akkor a propertyt csak classon belülről tudod beállítani, viszont ha readonly a property, akkor nincs setter, értéket adni neki csak konstrulrorból lehet (vagy egyből a deklaráció után)

2016. jún. 7. 19:04
Hasznos számodra ez a válasz?
 5/10 anonim ***** válasza:
Igen, arra gondoltam, mert a kérdező is. Azt kérdezte mikor melyiket. Az egyik a readonly, és akkor melyik lehet a másik?
2016. jún. 7. 20:28
Hasznos számodra ez a válasz?
 6/10 anonim ***** válasza:

Na, tehát a readonly változón a kérdező gondolom ezt érti:

public readonly int _field = 5;


A csak olvasható property lehet ez:

public int MyProperty { get; private set; }

Ekkor a propertynek csak osztályon belül lehet értéket adni.


Lehet ez:

public int MyProperty

{

get { return _akarmiMas*5; }

}

Ebben az esetben ehhez nem is tartozik lefoglalt memória terület, csak kiszámol vmit, vagy pl egy belső objektum propertyjét adja vissza direktben.


Ill lehet ez, amit readonly propertynek hívnak:

public int MyProperty { get; } = 5;


Ennek csak így vagy a konstruktorban lehet értéket adni.


Az első és utolsó auto property, azaz a fordító generál hozzá backing fieldet.


Hogy melyikre gondolt a kérdező, szerintem mondja meg ő.

2016. jún. 7. 20:52
Hasznos számodra ez a válasz?
 7/10 anonim ***** válasza:

Én ezeket tudom, csak azt nem értem, hogy miért gondoltam rosszra.

A kérdező meg szerintem a kérdés alapján lehet azt se tudja, hogy az általa említett csak olvasható property korántsem egyértelmű. Vagy get only, vagy private set, vagy a harmadik, amit írtál.

2016. jún. 8. 01:14
Hasznos számodra ez a válasz?
 8/10 anonim ***** válasza:
Mert azt írtad, hogy classon belül más a helyzet, ez a private set-es propertyre igaz csak. A kérdező pedig nagy valószínűséggel vagy a get onlyra vagy a readonly auto propertyre gondolt.
2016. jún. 8. 08:54
Hasznos számodra ez a válasz?
 9/10 anonim ***** válasza:
Ezeket te ki is próbáltad? Ajánlom, hogy tedd meg most.
2016. jún. 9. 12:17
Hasznos számodra ez a válasz?
 10/10 anonim ***** válasza:
Ezt hogy érted? Nap mint nap használom őket, az pedig egyértelmű, hogy a private cuccok csak classon belülről érhetőek el.
2016. jún. 9. 13:58
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!