gpt4 book ai didi

c# - 委托(delegate)给私有(private)函数作为不同类中方法的参数

转载 作者:太空狗 更新时间:2023-10-30 00:18:47 25 4
gpt4 key购买 nike

让我们使用私有(private)方法f()g()A。让类 B 有公共(public)方法 h。是否可以将指向 A.g 的指针/委托(delegate)从方法 A.f 传递给 B.h

考虑以下代码:

Class B
{
public B() {}

public h(/*take pointer/delegate*/)
{
//execute method from argument
}
}

Class A
{
private int x = 0;
private void g()
{
x = 5;
}

private void f()
{
B b = new B();
b.h(/*somehow pass delegate to g here*/);
}
}

调用 A.f() 后,我希望 A.x5。是否可以?如果是,怎么办?

最佳答案

您可以创建一个 Action方法的参数:

public h(Action action)
{
action();
}

然后这样调用它:

b.h(this.g);

可能值得注意的是 Action 有通用版本表示带有参数的方法。例如,Action<int>会将任何方法与单个 int 匹配参数。

关于c# - 委托(delegate)给私有(private)函数作为不同类中方法的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30361288/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com