Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C#

Action Delegate trong C#

Action là một delegate kiểu generic đại diện cho phương thức không trả về giá trị (void) và có thể nhận từ 0 đến 16 tham số. Được định nghĩa trong namespace System.

Khai báo và sử dụng

// Action với 1 tham số int
Action del = Display;

// Phương thức khớp chữ ký
public static void Display(int val)
{
    Console.WriteLine(val);
}

// Gọi delegate
del(2);  // Xuất: 2

Mã nguồn hoàn chỉnh

using System;

public class Demo
{
    public static void Main()
    {
        Action del = Display;
        del(2);
    }
    
    public static void Display(int val)
    {
        Console.WriteLine(val);
    }
}

Kết quả

2

Các biến thể Action

So sánh Action vs Func vs Predicate

DelegateTham sốTrả về
Action0void
Action<T>1void
Action<T1, T2>2void
.........
Action<T1...T16>16void
DelegateTrả vềDùng cho
Action<...>voidThực hiện hành động (side effect)
Func<..., TResult>TResultTính toán, chuyển đổi, trả về giá trị
Predicate<T>boolKiểm tra điều kiện (filter)

Ứng dụng phổ biến

  • Callback, event handler
  • Tham số phương thức (strategy pattern)
  • Logging, debugging
  • List.ForEach(Action<T>), Parallel.ForEach