Lambda Expression
Lambda expression راهی دیگر برای ساخت anonymous function است. از اینرو، lambda expression میتواند به delegate اختصاص داده شود. بهدلیل اینکه lambda expression راحتتر از anonymous method معادل است، پیشنهاد میشود که تقریبا در همهی موارد از lambda expression استفاده شود.
تمامی lambda expression ها از lambda operator استفاده میکنند که عبارت است از: <=
این operator یک lambda را به دو قسمت تقسیم میکند. در سمت چپ، پارامترهای ورودی و در سمت راست، بدنهی lambda مشخص میشود.
به مثال زیر توجه کنید:
در برنامهی بالا به این عبارات دقت کنید:
۱
۲
Incr incr = count => count + 2;
IsEven isEven = n => n % 2 == 0;
عبارت اول به incr یک lambda expression را اختصاص میدهد که مقدار فرستاده شده به count را با ۲ جمع کرده و نتیجه را return میکند. این عبارت میتواند به Incr delegate اختصاص یابد زیرا با تعریف Incr تطابق دارد. در عبارت دوم، اگر حاصل lambda یک عدد زوج باشد، مقدار true و اگر حاصل عددی فرد باشد، مقدار false را return خواهیم کرد.
تفاوت مثال بالا با مثال قبل، این است که در این مثال، lambda شامل بدنه است