Uwaga: to zostało opublikowane, gdy zaczynałem C #. Mając wiedzę z 2014 roku, mogę naprawdę powiedzieć, że właściwości automatyczne należą do najlepszych rzeczy, jakie kiedykolwiek przydarzyły się językowi C #.
Jestem używany do tworzenia moich właściwości w C # przy użyciu pola prywatnego i publicznego:
private string title;
public string Title
{
get { return title; }
set { title = value; }
}
Teraz, dzięki .NET 3.0, mamy właściwości automatyczne:
public string Title { get; set; }
Wiem, że jest to bardziej pytanie filozoficzne / subiektywne, ale czy jest jakiś powód, aby używać tych właściwości automatycznych poza zapisaniem pięciu wierszy kodu dla każdego pola? Moim osobistym problemem jest to, że te właściwości ukrywają przede mną rzeczy, a ja nie jestem wielkim fanem czarnej magii.
W rzeczywistości ukryte pole prywatne nawet nie pojawia się w debugerze, co jest w porządku, biorąc pod uwagę fakt, że funkcje get / set nic nie robią. Ale kiedy chcę faktycznie zaimplementować jakąś logikę getter / setter, i tak muszę użyć pary prywatna / publiczna.
Widzę korzyść, że zapisuję dużo kodu (jeden na sześć wierszy) bez utraty możliwości późniejszej zmiany logiki pobierającej / ustawiającej, ale z drugiej strony mogę już to zrobić, po prostu deklarując pole publiczne „Public string Title” bez potrzeba {get; zestaw; }, co pozwala na zapisanie większej ilości kodu.
Więc czego tu brakuje? Dlaczego ktokolwiek miałby chcieć używać właściwości automatycznych?