免责声明:我不希望这成为一个基于意见的问题。我正在寻找的是 .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
:
Foo
个对象需要我进行特殊处理
无法绕过。Foo
类型。答案 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); }