gpt4 book ai didi

c# - 减少代码重复 : Calling functions with slightly different signatures

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

假设我有两个如下所示的函数:

public static void myFunction1(int a, int b, int c, string d)
{
//dostuff
someoneelsesfunction(c,d);
//dostuff2
}

public static void myFunction2(int a, int b, int c, Stream d)
{
//dostuff
someoneelsesfunction(c,d);
//dostuff2
}

什么是避免重复重复的好方法?

我想到但不喜欢的想法:

  1. 我可以使 d 成为一个对象并根据类型在运行类型上进行转换,但这让我觉得不太理想;它删除了之前在编译时发生的类型检查。
  2. 我还可以编写一个私有(private)帮助程序类,它接受一个对象并将两个签名写为公共(public)函数。
  3. 我可以用委托(delegate)或函数调用或其他东西替换 dostuff 和 dostuff2。

最佳答案

只需将“doStuff”和“doStuff2”重构为单独的方法即可。

他们显然在做与“someoneelsesfunction”方法不同的“事情”,所以无论如何它们应该是单独的方法。理想情况下,每种方法都应该有一项任务。

这甚至是 Visual Studio 中支持的重构 - 只需突出显示“dostuff”中的代码,然后右键单击,然后选择 Refactor->Extract Method。

关于c# - 减少代码重复 : Calling functions with slightly different signatures,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2556509/

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