Widziałem gdzieś coś podobnego do następującego i zastanawiałem się, co to oznacza. Wiem, że są to metody pobierające i ustawiające, ale chcę wiedzieć, dlaczego typ ciągu jest zdefiniowany w ten sposób. Dziękuję za pomoc.
public string Type { get; set; }
c#
getter-setter
Maya
źródło
źródło
"Type"
, której typem .NET jestSystem.string
. Nie ma w tym nic więcej.Odpowiedzi:
Są to właściwości zaimplementowane automatycznie (w skrócie właściwości automatyczne).
Kompilator automatycznie wygeneruje odpowiednik następującej prostej implementacji:
źródło
public int b { get { return b * 2; } }
drugie pole nie jest potrzebne. Ale myślę, że jeśli masz setera z ciałem, potrzebujesz drugiego pola. A ten przedstawia setera z ciałem. Chociaż robi to samo, co jedna linijka pytającego.=>
składnię i nie ma słowa kluczowego return. Chociaż nie o to mi chodziło. Miałem na myśli to, że drugie pole jest niepotrzebne, chociaż od tego czasu stwierdziłem, że drugie pole jest czasami potrzebne. W tym przykładzie drugie pole nie jest konieczne (bo zrobiłby to domyślny ustawiacz bez ciała), ale osoba odpowiadająca wstawiała je (treść ustawiająca i drugie pole), aby wyjaśnić pytającemu, jaka jest ich linia bez elementu drugie pole robiło.To jest własność automatyczna i jest to skrótowa notacja:
źródło
<Type>k__BackingField
z refleksją.W C # 6:
Teraz można zadeklarować właściwości automatyczne jako pole:
Właściwości automatyczne tylko do odczytu
źródło
Nie różni się od robienia
źródło
Oznacza to, że kompilator definiuje pole zapasowe w czasie wykonywania. To jest składnia właściwości implementowanych automatycznie.
Więcej informacji: Właściwości zaimplementowane automatycznie
źródło
Jest to właściwość wspierana automatycznie, w zasadzie odpowiednik
źródło
Nazywa się to właściwościami automatycznymi.
http://msdn.microsoft.com/en-us/library/bb384054.aspx
Funkcjonalnie (i pod względem skompilowanej IL) są takie same jak właściwości z polami zapasowymi.
źródło
Wiem, że to stare pytanie, ale wraz z wydaniem C # 6 możesz teraz zrobić coś takiego dla prywatnych nieruchomości.
źródło
Możesz również użyć wyrażenia lambda
źródło