Wpis z mikrobloga

@oreze: albo jestem wyjątkowo tępy, albo ten artykuł wcale nie odpowiada na moje pytanie. Ja nie widzę różnicy w działaniu "public string zmienna" i "public string zmienna { get; set; }".
  • Odpowiedz
@Goryptic:
-inaczej się wyświetla (jak masz ikonki przy membersach)
-inaczej się dobierasz przez refleksje bo to co innego( taki auto property {get;set;} to tak naprawde 2 metody(zapis/odczyt) i jedno pole pod maską )
-wersja z {get;set;} jest wolniejsza bo dobranie się do zmniennej kosztuje jeden więcej poziom na stacku ale są to pomijalne różnice, wiec jesli nie odczytujesz/zapisujesz milionami to nie ma znaczenia
  • Odpowiedz
@Goryptic: {get; set;} kompilator przerabia pod spodem na metody.
jak masz np. public string Dupa {get;set;} to kompilator traktuje to jakbys zrobil:

private string Dupa;

public string getDupa() { return Dupa; }
public void set
Dupa(string value) { Dupa = value; }

jak zadeklarujesz w klasie:
public string Dupa {get;set;}

i spróbujesz dodać metody:
public string getDupa()
public void set
Dupa(string value)

to kompilator bedzie sapał ze nazwy sa
przecier666 - @Goryptic: {get; set;} kompilator przerabia pod spodem na metody. 
jak...

źródło: comment_1606824193tcwqlPTewiNlWRfM7MiPcL.jpg

Pobierz
  • Odpowiedz