Aida-Hagh / C-Sharp

Learn C#
1 stars 0 forks source link

Func & Action Delegates #31

Open Aida-Hagh opened 5 months ago

Aida-Hagh commented 5 months 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 یک مقدار را به فراخواننده برمی‌گرداند.

Aida-Hagh commented 5 months 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
    }