gpt4 book ai didi

c# - 如何在我的类(class)之间设置委托(delegate)?

转载 作者:太空狗 更新时间:2023-10-29 21:47:34 25 4
gpt4 key购买 nike

我正在处理一些结构如下的代码:

表单 A 中包含用户控件 B 和 G。用户控件 B 中有用户控件 D,用户控件 D 有一个“刷新”方法。用户控件G中有用户控件F,用户控件F需要调用D中的“刷新”方法。

1) 如果不重组代码(它是遗留代码,因此不作为一个选项),委托(delegate)是否是处理此问题的最佳方式?如果没有,您还有其他建议吗?

2) 我没有使用委托(delegate)函数的经验 - 是否有好的入门或示例可以用来调整我的代码以实现所需的功能?

最佳答案

首先,F 应该对 D 及其刷新函数一无所知。将事件添加到 F,在必要时引发。如果表单 A 知道 F,则从 A 订阅此事件。如果不是,则在 G 中创建类似的事件,并在 A 中订阅它。在 A 事件处理程序中,直接调用 Refresh,或调用 B 方法,该方法调用 D.refresh。

看起来我的回答比你的问题更难读:)它应该是这样的:

F 引发事件 -> G 处理 F 的事件并引发事件 -> A 处理 G 的事件并调用 B 方法 -> B 方法调用 D.refresh

关于c# - 如何在我的类(class)之间设置委托(delegate)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3246556/

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