Article View: alt.pl.comp.lang.csharp
Article #10204Re: properties?
From: j_marek
Date: Mon, 21 Nov 2005 20:26
Date: Mon, 21 Nov 2005 20:26
48 lines
2552 bytes
2552 bytes
W wiadomości: dlr25p$i3n$1@inews.gazeta.pl,
^KoWaL^ <kowal81@gazeta.pl> napisał(a):
> Witam. Ucze sie dopiero c#, wiec prosze o wyrozumielosc:)
> Czy ktos mi moze powiedziec do czego sluza properties np takie jak ta:
>
> public int Hour
> {
> get
> {
> return hour;
> }
> set
> {
> hour = value;
> }
> }
[...]
Witam!
Jakiś czas temu była mała dyskusja na ten temat.
Wątek:
bledy popelniane przez programistow C#
Różnica jest tak, że w przypadku właściwości podany kod jest wykonywany i
wyniki jego działania są dostępne (np. zwracane) przez wartość.
W przypadku zmiennej masz bezpośredni do niej dostęp. Np. możesz zmienną
przekazać przez referencje do metody. Jeśli zmienne jest strukturą możesz
zmienić poszczególne pole struktury.
Jeśli struktura dostępna jest przez właściwość można tylko przypisać jej
nową wartość przez kopiowanie. Do błędów może dojść jeśli struktura posiada
metody, które dokonują jej zmiany. W przypadku właściwości taka metoda
zostanie wykonana na kopii, która znika ze stosu. W przypadku zmiennej taka
metoda modyfikują zmienną.
Być może jeszcze lepiej widać tę różnice w przypadku, kiedy zmienna jest
tylu obiektowego. Jeśli właściwość była by tylko do odczytu można
modyfikować zawartość zwracanego obiektu (w tym przypadku Hour). Natomiast
do zmiennej nie można przypisać innego obiektu -- jego referencji.
--
Pozdrawiam,
Marek Janaszewski
[ j_marek(małpa)gazeta(kropka)pl ]
[ == USUN_TO. z adresu == ]
Technical Details
Message-ID:
<dltcbb$16mi$1@news2.ipartners.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.ipartners.pl!ipartners.pl!not-for-mailReferences:
<dlr25p$i3n$1@inews.gazeta.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!newsfeed.pionier.net.pl!news.ipartners.pl!ipartners.pl!not-for-mail From: "j_marek" <j_marek@USUN_TO.gazeta.pl> Newsgroups: alt.pl.comp.lang.csharp Subject: Re: properties? Date: Mon, 21 Nov 2005 21:26:54 +0100 Organization: Internet Partners Lines: 49 Message-ID: <dltcbb$16mi$1@news2.ipartners.pl> References: <dlr25p$i3n$1@inews.gazeta.pl> NNTP-Posting-Host: 217.153.157.130 Mime-Version: 1.0 X-Trace: news2.ipartners.pl 1132606635 39634 217.153.157.130 (21 Nov 2005 20:57:15 GMT) X-Complaints-To: abuse@ipartners.pl NNTP-Posting-Date: 21 Nov 2005 20:57:15 GMT X-Priority: 3 X-Antivirus: avast! (VPS 0546-6, 2005-11-20), Outbound message X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2670 X-Newsreader: Microsoft Outlook Express 6.00.2900.2670 X-MSMail-Priority: Normal X-Antivirus-Status: Clean Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit