c# - 一种更简洁的方法来自动调用一个又一个方法?

标签 c# winforms

是否有可能以这种方式设计一个方法,它知道它必须在退出时自动连续调用下一个方法?

在下面的示例中,我必须调用 Refresh() 以使我的表单在此事件发生后重新绘制。问题是,在例如 20 个必须使表单刷新的不同事件之后调用 Refresh() 是很丑陋的。例如

private void PriorityLine_Click(object sender, EventArgs e)
{
   _showPriorityLine = (_showPriorityLine) ? false : true;
  Refresh(); // Must call refresh for changes to take effect.
}

我想我正在寻找的是某种签名,我可以将其应用于该方法以使其自动链接到下一个方法,而不管它是从哪里调用的。例如

(我知道这在语法上不正确。)

private void PriorityLine_Click(object sender, EventArgs e).Refresh()
{
   _showPriorityLine = (_showPriorityLine) ? false : true;
}

我想将方法​​的接口(interface)与方法中包含的逻辑分开。我知道这将是确切的努力量,如果不是更多的话。例如,如果我要编辑方法并且不小心删除了 Refresh,它会导致我的应用程序中断。然而,如果 Refresh 方法在该方法的实际逻辑之外,我可以在该方法内执行任何操作,而不必担心删除下一个逻辑链。

最佳答案

听起来你想要的是面向方面的编程,有许多不同的框架可以让你在运行一些方法集后“神奇地”发生一些事情,看看这里 AOP programming in .Net?

关于c# - 一种更简洁的方法来自动调用一个又一个方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4829705/

相关文章:

c# - TFS 复制工作项链接

c# - 我的 id 不为空,为什么会收到运行时错误?

c# - 取消选择 RichTextBox 中的文本

.net - 如何检测是否按下了windows键?

c# - 如何从 C# 调用带有结构指针参数的 C++ 函数?

c# - C#中五个线程之间的时间分片

c# - 在 C# 中将 2 个 Xml 文件与 XDocument 相交

c# - 如何将 `linq` 的结果返回到 DataTable?

c# - c#中的组合框选择值

c# - 在 DataGridViewImageColumn 绑定(bind)文本字段中显示图像