Ne kontam ovakvu upotrebu Lambda izraza, ja sam navikao da ih koristim samo umesto anonimnih funkcija (kao npr. kod jQuery, kad ima više ugneždenih callback funkcija, lako se pogubiti sa onolikim zagradama, a i bespotrebno se gomila kod).
Takođe, C# ima odličnu podršku za Lambda izraze (ne treba mešati C# Lambda izraze sa LambdaExpression klasom u System.Linq.Expressions, jer je LINQ implementiran u .NET-u tako da se može pisati da više liči na Lambda izraze umesto na SQL upite), pa takve izraze ima smisla koristi recimo u ovakvim situacijama:
Code:
public List<Product> GetNonExpired (DateTime date)
{
return this.productRepository.GetProducts().Where(p => p.ExpiryDate < date).ToList();
}
Kod je sasvim pregledan, jasno je šta radi, kakve podatke vraća, a praktično sve u jednoj liniji.
Ali, da bi mogao da se piše ovako sažet kod, mora postojati implementacija tih metoda, što je ukonkretnom primeru urađeno u okviru LINQ-a u .NET-u (Queryable assembly).
Ono što je najveći problem kod MS-a je njihova dokumentacija, recimo konkretno za Where() metodu:
https://docs.microsoft.com/en-...System_Int32_System_Boolean___
Tu njihovu dokumentaciju kao da pišu ljudi koji u životu nisu uradili jedan primer funkcionalnog koda koji može da se kompajlira ili da se primeni na neki praktičan slučaj.
Blessed are those who can laugh at themselves, for they shall never cease to be amused.