.NET最佳实践或框架示例:函数重载与新方法?

时间:2014-01-31 18:25:26

标签: .net oop

免责声明:我不希望这成为一个基于意见的问题。我正在寻找的是 .NET Framework库中的一个示例一个.NET最佳实践来解决我的问题。

我目前正在设计一个类,通常调用者只需要发送一个Foo,但有时调用者需要一次发送多个Foos:

编辑:还有其他参数以及Foo和Foo []。我道歉 - 我试图成为通用的。

我目前有方法(单独的方法):

int SendFoo(Foo foo, int timeout)

int SendFoos(Foo[] foos, int timeout)

但后来我想也许我应该这样做(函数重载):

int SendFoo(Foo foo, int timeout)

int SendFoo(Foo[] foos, int timeout)

我非常倾向于功能过载解决方案,因为我相信我以前见过这个,但我想要一些证据证明这是正确的决定。

我目前无法想起.NET Framework库中的类似示例,或者是否存在针对此方案的现有.NET最佳实践。

感谢您的时间。

编辑以回应使用params

由于以下原因,我无法使用params

  1. 发送多个Foo个对象需要我进行特殊处理 无法绕过。
  2. 我在方法中使用的其他参数不是Foo类型。

4 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

我见过这个

public int SendFoo(int timeout,params Foo [] foo)         {             ...         }

答案 2 :(得分:0)

我希望更改为使用IEnumerable< Foo >

int SendFoo(IEnumerable<Foo> foos, int timeout)
{
    // Work generically using foreach
    foreach(Foo foo in foos)
    {
        ///Processing of each Foo in collection
    }
}

答案 3 :(得分:0)

执行相同操作的多个方法我也称之为不合需要的

你可以全部完成

int SendFoo(Foo [] foos,int timeout)//完成实际工作

int SendFoo(Foo foo,int timeout) {     return SendFoo(new Foo [1] {foo},timeout); }

int SendFoos(Foo [] foos,int timeout) {     return SendFoo(foos,timeout); }