Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Ondřej Krsička:19.4.2016 20:22

Ahoj, proč bych měl používat vlastnosti? Oproti veřejné proměnné mi to přijde zbytečně zdlouhavé a prý je to i pomalejší. Tak proč to používat?

class Point
{
        public int x, y;
}

Mi přijde lepší, než

class Point
{
        public int X{ get; set; }
        public int Y{ get; set; }
}

PS: Asi bych pro takovéto věci použil spíše struct, ale záleží na situaci.

EDIT: Ptám se na případy, kdy je get a set takhle prázdné, pokud je ve vlastnosti nějaká logika, tak to smysl dává...

Editováno 19.4.2016 20:23
 
Odpovědět
19.4.2016 20:22
Avatar
Marian Benčat:20.4.2016 23:59

vždy a všechny public fieldy dělej jako property, je k tomu strašně moc důvodů. Některé z nich:

  1. Property ti umožňují overridovat je a mít je virtual
  2. Property ti umožňují velmi jednoduše pridavat logiku, aniz by si musel refaktorovat ostatni kod.
  3. Propertam muzes davat access level
  4. Téměř každý UI framework/ binder property vyžaduje

jistě si teď říkáš.. no jo, ale přeci můžu kdykoliv změnit :

public int x;

za

public int x {get; set;}

Pravde je taková, že nemůžeš,.. narušíš tím tedy vnitřní contract, takže ti to přestane fungovat, poiud tam třeba komunikujes mezi 2ma DLLkama.. (jelikož property jsou implementovane vnitrne spise jako metody, než místo v paměti).

Public fieldy tedy nepoužívej,., pouze tě omrzí do budoucna a nepřineou ti vůbec žádnou výhodu.

Ohledně výkonu.. auto property: neco {get; set;} nemají žádné výkonnostní dopady, protože jsou inlineovány.

Akceptované řešení
+20 Zkušeností
Řešení problému
Nahoru Odpovědět
20.4.2016 23:59
Totalitní admini..
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 2 zpráv z 2.