🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: alt.pl.comp.lang.csharp
Article #10204

Re: properties?

#10204
From: j_marek
Date: Mon, 21 Nov 2005 20:26
48 lines
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-mail
References: <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