c# - 定义两个具有相同参数类型的方法

标签 c# .net methods parameters overloading

今天我遇到了一个场景,我必须创建一个与现有方法共享相同的名称、参数计数和参数类型的方法,如下所示:

public static Department GetDepartment(string departmentName)
{
  //LOGIC
}

public static Department GetDepartment(string employeeID)
{
  //LOGIC
}

乍一看我只是说为什么不换个名字把事情搞定,但我做不到!我确实想保持我正在处理的代码的可读性,我希望它重载到第一个,
所以我说为什么不添加一个假参数只是为了从编译器的角度解决这个问题。

 public static Department GetDepartment(string employeeID, object fakePassWtEver)
    {
      //LOGIC
    }

这种情况下的最佳做法是什么?我看到了所有可以让我的代码运行的方法,但是没有一个让我满意

最佳答案

保持可读性正是您应该重命名它的原因:

Department GetDepartmentByName(...)

Department GetDepartmentByEmployeeID(...)

现在无论何时您调用该方法,绝对显而易见您指的是哪一个。如果您改为重载该方法,情况就不是了。

随着时间的推移,我越来越不愿意重载 - 有 quite a few subtle issues ,可读性经常下降。

关于c# - 定义两个具有相同参数类型的方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6858838/

相关文章:

java - Singleton 类中的非静态成员

java - 对象的对象实例化是否有性能影响有很多方法?

c# - 我应该更喜欢封闭式还是开放式列表<>系统?

c# - 使 ASP.Net 页面过期

c# - ChannelFactory 最大连接池

c# - AutoMapper:运行时类型跳过给定成员

c# - 如何为每个用户打开单独的窗口

c# - 处理不同的非托管整数大小

c# - 在 .NET 中合并两个数组

java - '这个方法必须返回 int 类型的结果' Java?