Od C # /. NET Little Wonders: Członkowie wyrażeniowo w C # 6 :
Więc powinieneś tego użyć? Wszystko sprowadza się do stylu. Moim celem byłoby ograniczenie tego do prostych wyrażeń i stwierdzeń, które można zrozumieć na pierwszy rzut oka.
(podkreślenie, moje; patrz aktualizacja 1 poniżej)
Więcej z podsumowania powyższego artykułu:
Więc C # 6 daje nam teraz możliwość określania właściwości tylko get i metod metod za pomocą wyrażeń. Pomoże to zmniejszyć obciążenie bardzo prostymi składniami, aby kod był bardziej zwięzły.
Jednak we wszystkich kwestiach należy ocenić, czy pasuje to do danej sytuacji. Gdy wyrażenie jest bardzo długie lub złożone, użycie pełnej składni może być jeszcze bardziej czytelne.
I kolejny cytat na temat wydajności, ponieważ problemy z wydajnością mogą również odgrywać rolę, gdy właściwe jest użycie określonej funkcji języka:
Teraz możesz zapytać, czy ma to wpływ na wydajność w czasie wykonywania? Właściwie odpowiedź brzmi nie . Jest to po prostu cukier składniowy, który rozwija się w tę samą IL, co pisanie całego ciała. To nie nie stworzyć delegata, to jest po prostu zapożyczając wyrażenie składni lambda uproszczenia pisania prostych ciał, które prowadzą w wyrażeniu.
(wyróżnienie, autor)
Aktualizacja 1: @ JörgWMittag powiedział
To nie ma sensu. „ograniczyć to do prostych wyrażeń i stwierdzeń”? Co? Nie działa nawet z instrukcjami, tylko z wyrażeniami!
Wygląda na to, że oryginalny autor mógł się pomylić. Aby to wyjaśnić, z nowego i ulepszonego C # 6.0 :
Funkcje treści wyrażeń są kolejnym uproszczeniem składni w C # 6.0. Są to funkcje bez treści instrukcji. Zamiast tego implementujesz je za pomocą wyrażenia następującego po deklaracji funkcji.
Dla jasności nie oznacza to, że metoda lub właściwość są wyrażeniem . Wykorzystuje składnię wyrażeń do zmniejszenia linii kodu (i liczby nawiasów klamrowych).
Moja oryginalna rekomendacja nadal obowiązuje: używaj jej, gdy uczyni twój kod oczywistym i łatwiejszym do zrozumienia, nie tylko dlatego, że możesz go użyć.