gpt4 book ai didi

c# - 两种不同签名的一种方法

转载 作者:行者123 更新时间:2023-11-30 19:25:06 25 4
gpt4 key购买 nike

我有两个方法完全相同,但一个接受 PaintEventArgs 类参数,而另一个接受 PrintPageEventArgs 类参数。这迫使我编写两种不同的方法,对于如此细微的差异,这两种方法往往有点过分。

public static void DoAllTasks_Panel(PaintEventArgs e)
{
// Commands...
}

public static void DoAllTasks_Print(PrintPageEventArgs e)
{
// Commands...
}

我曾尝试使用 EventArgs 类参数将它们合并为一个方法,但没有成功,如下所示:

public static void DoAllTasks(EventArgs e)
{
// Commands...
}

是否有可能将它们合并为一个方法?

最佳答案

如果 DoAllTask​​s_PanelDoAllTask​​s_Print 确实做同样的事情,并且只是因为需要两个不同的签名而存在,那么标准方法是创建第三个,私有(private)的,完成工作并让每个人调用它的方法:

public static void DoAllTasks_Panel(PaintEventArgs e)
{
DoCommands();
}

public static void DoAllTasks_Print(PrintPageEventArgs e)
{
DoCommands();
}

private static DoCommands()
{
// Commands...
}

通过这种方式,您可以很好地分离关注点并满足 DRY(不要重复自己)原则:您拥有单独的事件处理程序方法和执行所有常见工作的第三种方法。

关于c# - 两种不同签名的一种方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31214158/

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