关于委托以及函数作为参数传递的简单暴力方法,如何将A1函数传递给B类中,并且在B类中执行A1这个函数

好东西要自己留下。注意看class A  的参数System.Action action


方法一:转载的


C#想要传递函数参数,但是参数类型是函数,不知道如何传递。

其实网上一大堆,都太啰嗦了。我就喜欢简单的方法。

结合.NET委托的性质和直接用匿名委托传函数蛮简单的,希望新手可以自己试试。

下面就是具体实现了

  class Program
    {
        static void Main(string[] args)
        {
            A a = new A();
            B b = new B();
            a.FunctionA(delegate () { b.FunctionB(); });


        }
    }
    class A
    {
        public void FunctionA(System.Action action)
        {
            //*********
            Console.WriteLine("我是函数A");
            action.Invoke();
            //*********
        }
    }
    class B
    {
        public void FunctionB()
        {
        //********
            Console.WriteLine("我是函数B");

        //*******        

}     

 }

方法二:也是转载,采用委托

C#如何传递函数,在别的类中执行,注意第一句话那里的b类的委托


使用委托
public class a
{
    b b1=new b(() => a1());
    public void a1()
    {
       MessageBox.Show("a1");
    }
}
public class b
{
    public b(Action func) { func(); }
}

方法三:还是委托

C#如何传递函数,在别的类中执行,这里是在倒数第二局进行的委托

    public class a
    {
        b b1 = new b();
        public void a1()
        {
            MessageBox.Show("a1");
        }
 
        //如何将A1函数传递给B类中,并且在B类中执行A1这个函数
    }
 
    public class b
    {
 
        public void TestOther()
        {
            Action action = new a().a1;
            action();
        }
    }

方法四:这次不是委托了,是静态

如何将A1函数传递给B类中,并且在B类中执行A1这个函数

    public class a
    {
        b b1 = new b();
        public static void a1()
        {
            MessageBox.Show("a1");
        }
 
        //如何将A1函数传递给B类中,并且在B类中执行A1这个函数
    }
 
    public class b
    {
        public static void Test()
        {
            //这里直接调用
            a.a1();
        }
    }

参考

C#如何传递函数,在别的类中执行-CSDN论坛 https://bbs.csdn.net/topics/390333133?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值