好东西要自己留下。注意看class A 的参数System.Action action
方法一:转载的
其实网上一大堆,都太啰嗦了。我就喜欢简单的方法。
结合.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