C# 面试题 目录

C# 中 Action 和 Func 委托的区别

推荐答案

在C#中,ActionFunc都是预定义的委托类型,但它们的主要区别在于返回值类型:

  • Action:用于表示没有返回值的方法。它可以接受0到16个输入参数。
  • Func:用于表示有返回值的方法。它可以接受0到16个输入参数,并且最后一个泛型参数表示返回值的类型。

本题详细解读

Action 委托

Action委托用于封装没有返回值的方法。它可以接受0到16个输入参数。例如:

Func 委托

Func委托用于封装有返回值的方法。它可以接受0到16个输入参数,并且最后一个泛型参数表示返回值的类型。例如:

-- -------------------- ---- -------
-- --------
--------- --------------- - -- -- --- ----------------
--- ------------ - ------------------
--------------------------------

-- --------
--------- ---- ---- ---------- - --- -- -- - - --
--- --- - ------------- ----
-----------------------

主要区别

  1. 返回值

    • Action没有返回值。
    • Func有返回值,且最后一个泛型参数指定返回值的类型。
  2. 参数数量

    • ActionFunc都可以接受0到16个输入参数。
  3. 使用场景

    • 当你需要封装一个没有返回值的方法时,使用Action
    • 当你需要封装一个有返回值的方法时,使用Func

示例对比

通过以上示例可以看出,ActionFunc的主要区别在于是否有返回值,以及如何使用它们来封装不同的方法。

纠错
反馈