Wątek przeniesiony 2015-08-01 13:03 z C# i .NET przez Ktos.

Skladnia - właściwości get i set

0

jest gdzies watek dla poczatkujacych gdzie mozna zadac szybkie pytanie i uzyskac szybka odpowiedz? proste chyba oczywiste pytanie
jest taki watek na forum il2forum i dobrze sie sprawdza, kto chce odpowiada kto nie chce nie odpowiada

moje pytanie jest takie: jak mam wlasciwosc to czym sie roznia skladnie:

int wart
public int WART {
    get{
        return wart;
    }
    set{
        wart=value;
    }
}

od tej:

public int wart
public int WART { get; set;}
}

skad ta druga wie jaka wartosc ma pobrac albo do jakiej przypisac? czy to sie uzywa przy prostych wlasciwosciach gdy zmienna taka sama jak wlasciwosc? wtedy nie trzeba deklarowac zmiennej i mozna w klasie operowac na tej wlasciwosci?

np w metodzie jakiejs a=WART*2 ??(WART to wlasciwosc a nie zmienna)

1

Na tym forum jest cały dział (Newbie) przeznaczony na takie pytania.

A co do pytania, tutaj masz wszystko ładnie opisane: http://www.p-programowanie.pl/c-sharp/wlasciwosci-akcesory-get-set/ .

I jeszcze mała prośba/rada: pisz zgodnie z zasadami.

0

ekwiwalenty to:

int wart
public int WART {
    get{
        return wart;
    }
    set{
        wart=value;
    }
}

i

public bool WART { get; set;}

a nie tak jak ty napisales.
ta druga wie do jakiego pola przypisac wartosc bo sobie go sama tworzy.
celem posiadania auto-wlasciwosci jest zaoszczedzenie na pisaniu jesli wlasciwosc jest tylko i wylacznie wrapperem na pole. tak, mozna (a nawet trzeba) operowac na takiej wlasciwosci wewnatrz klasy. swoja droga jesli nie ustawiasz wlasciwosci z zewnatrz (to prawie zawsze zly pomysl) to dodaj slowko private do settera

public bool WART { get; private set;}
0

no szukałem takiego działu, ale widocznie cos zle klikałem:] to czy mozna ten wątek przenieść do Newbie (temat zmieniłem)?

tam zamiast BOOL miało byc INT wszedzie, wydawalo mi sie że poprawiłem to wszędzie
i w tych ekwiwalentach jest tak samo jak ja napisalem (tylko zamiast bool ma być INT)

właśnie chodziło mi o wyjaśnienie tego celu i tak jak myślałem ze chodzi o jakieś uproszczenie, czyli jeśli właściwości nic nie robi tylko przypisuje i/lub zwraca wartość to użzywamy takiej autowłasciwosci

a dlaczego ustawianie właściwości z zewnątrz to zly pomysł? myślałem że właśnie po to one sa, zeby zablokować dostęp z zewnątrz do zmiennej

1 użytkowników online, w tym zalogowanych: 0, gości: 1