使用相同的参数类型定义两个方法

Ram*_*eef 11 .net c# parameters methods overloading

今天我遇到了一个场景,我必须创建一个name, params count and params types与现有方法共享相同方法的方法,如下所示:

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

public static Department GetDepartment(string employeeID)
{
  //LOGIC
}
Run Code Online (Sandbox Code Playgroud)

乍一看,我只是说为什么不用不同的名字命名并完成任务,但我不能!我确实希望保持我正在处理的代码的可读性,我希望它是overloaded第一个,
所以我说为什么不添加一个假参数只是为了解决这个问题从编译器的角度来看.

 public static Department GetDepartment(string employeeID, object fakePassWtEver)
    {
      //LOGIC
    }
Run Code Online (Sandbox Code Playgroud)

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

Jon*_*eet 35

保持可读性也正是为什么你应该将其重命名:

Department GetDepartmentByName(...)

Department GetDepartmentByEmployeeID(...)
Run Code Online (Sandbox Code Playgroud)

现在每当你调用这个方法时,你的意思就是明显的.这是非常的情况下,如果你重载方法来代替.

随着时间的推移,我越来越不愿意过载 - 存在一些微妙的问题,而且可读性经常会下降.


Bri*_*haw 5

您可以通过执行以下操作来更新方法签名并使代码更具可读性.

public static GetDepartmentByName( string departmentName )

public static GetDepartmentByEmployeeId( string employeeId )
Run Code Online (Sandbox Code Playgroud)

就个人而言,我觉得在代码中加入冗长有助于其他人后来了解正在发生的事情.它还有助于使您的方法更容易"阅读".