در این بخش به آموزش کار با Lambda expressions میپردازیم. برای درک Lambda expressions ابتدا باید با delegate و Action و Func آشنا شویم. ولی میتوان گفت Lambda expressions یک ویژگی قدرتمند در زبان برنامهنویسی C# هستند. که به برنامهنویسان کمک می کند که کدی مختصر و قابل فهم بنویسند. قابلیت تعریف تابعهای ناشناس یا توابع مشتق را در قالبی کوچک و خلاصه فراهم میکند.
از Lambda expressions در Linq استفاده زیادی میشود. و Linq یکی از ابزار های ما در دوره پیشرفته Entity Framework Core میباشد. پس یادگیری آن برای این دوره بسیار مهم است.
delegate نوعی شیء است که میتواند به یک متد اشاره کند و آن را در زمان دلخواه اجرا کند. به بیان سادهتر، delegate شبیه به یک “اشارهگر به متد” است. شما میتوانید متدی را به delegate نسبت دهید و آن را همانند متغیری از نوع delegate فراخوانی کنید. delegate به شما اجازه میدهد متدها را بهصورت پویا به متغیرها نسبت دهید یا بهعنوان پارامتر به دیگر متدها ارسال کنید. بهعبارت دیگر، delegate یک اشارهگر به متد است که میتواند متدهایی با امضای مشابه را نگه دارد و اجرا کند.
Action یک delegate است که نمیتواند مقداری را برگرداند و میتواند تا ۱۶ پارامتر ورودی داشته باشد. این delegate برای اجرای متدهایی که نیاز به بازگشت مقدار ندارند، مناسب است.
متد ها
public void Calculator(Action<int, int> action) {
action.Invoke(4, 5);
}
private void Sum(int x, int y) {
Console.WriteLine((x + y).ToString());
}
private void Multiply(int x, int y)
{
Console.WriteLine((x * y).ToString());
}
private void Subtraction(int x, int y)
{
Console.WriteLine((x - y).ToString());
}
private void Division(int x, int y)
{
Console.WriteLine((x / y).ToString());
}
فراخوانی
Calculator(Sum);
Calculator(Multiply);
Calculator(Subtraction);
Calculator(Division);
Func یک delegate است که حداقل یک پارامتر ورودی دارد و میتواند یک مقدار را برگرداند. این delegate نیز میتواند تا ۱۶ پارامتر ورودی داشته باشد.
عبارتهای لامبدا (Lambda Expressions) یک ویژگی قدرتمند در زبان برنامهنویسی C# هستند که به برنامهنویسان کمک می کند که کدی مختصر و قابل فهم بنویسند. این ویژگی که در نسخه ۳٫۰ زبان C# معرفی شده است، قابلیت تعریف تابعهای ناشناس یا توابع مشتق را در قالبی کوچک و خلاصه فراهم میکند.
ساختار عبارت لامبدا از سه بخش اصلی تشکیل شده است: لیست پارامترها، عملگر لامبدا (=>) و عبارت یا بلوک دستوری.
(parameter_list) => expression
ممنون بابت آموزش رایگانت ……و عالیه