AidaHagh / C-Sharp

Learn C#
1 stars 0 forks source link

Func & Action Delegates #31

Open AidaHagh opened 3 weeks ago

AidaHagh commented 3 weeks ago

دلیگیت Func:

دلیگیتی که می‌تواند تا 16 پارامتر بپذیرد و یک مقدار برگرداند.

//example1

     Func<int, int, int> add = (a, b) => a + b;
    int result = add(3, 4); // result == 7

// یک دلیگیت است که دو عدد صحیح می‌پذیرد و یک عدد صحیح را برمیگرداند <Func<int, int, int

//example2

    Func<int, int> square = x => x * x;
    int result1 = square(5);
    Console.WriteLine($"Square of 5 is {result1}");

دلیگیت Action: دلیگیتی که می‌تواند تا 16 پارامتر بپذیرد و هیچ مقداری برنگرداند.

    Action<int, int> printSum = (a, b) => Console.WriteLine(a + b);
    printSum(3, 4); // Output: 7

// یک دلیگیت است که دو عدد صحیح می‌پذیرد و هیچ مقداری برنمی‌گرداند <Action<int, int

مقایسه:Action می‌تواند عملیاتی انجام دهد و نتایج را به کنسول یا هر خروجی دیگری چاپ کند، ولی به خودی خود هیچ مقداری را به فراخواننده برنمی‌گرداند. در مقابل، Func یک مقدار را به فراخواننده برمی‌گرداند.

AidaHagh commented 3 weeks ago

استفاده از Func در LINQ :

   int[] numbers = { 1, 2, 3, 4, 5 };

    Func<int, bool> isEven = x => x % 2 == 0;        //برای تعریف یک شرط Funcاستفاده از

    var evenNumbers = numbers.Where(isEven);      // Func با LINQاستفاده از 

    foreach (var number in evenNumbers)
    {
        Console.WriteLine(number);    // Output: 2, 4
    }