c#中实现委托的方式有很多种,除了使用delegate关键字Delegate对象定义委托以外,还可以使用 Action Func泛型委托。 Action泛型委托表示引用一个 void返回类型的方法。这个委托类别有不同的重载实现,最多可以传递 16个参数

Func泛型委托Action泛型委托类似。但Func泛型委托Action泛型委托的区别就是允许调用带返回值的方法,此外Func泛型委托定义了不同的重载实现,最多可以传输 16个参数和返回值。

接下来就让我们一起看看Action泛型委托和Func泛型委托的使用场景,首先来看看Action泛型委托示例代码

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace WindowsFormsApp1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        // 定义无返回值委托
        public Action<string> OnNoRet;

        //定义有返回值委托
        public Func<string, string> OnYesRet;

        private void Form1_Load(object sender, EventArgs e)
        {
            //绑定委托
            OnNoRet += NoRet;
            OnYesRet += YesRet;
        }

        public void NoRet(string str)
        {
            Console.WriteLine($"仅输出文本{str},不返回值");
        }

        public string YesRet(string str)
        {
            return str + "带返回值方法";
        }
    }
}
最后修改:2022 年 10 月 10 日
如果觉得我的文章对你有用,请随意赞赏