2010-07-04 107 views
0

我应该何时使用方法重载进行实时开发,请提供一些链接。什么时候应该实时使用方法重载项目?

+1

@Closers,我无法找到一个副本。这是一个真正的问题。 – 2010-07-04 08:10:40

+3

当你说“实时”是暗示“真实生活”,正如Henk下面提到的,或者你正在研究性能至关重要的实时软件应用程序?我怀疑亨克是正确的,但如果我们能够帮助消除问题的答案,那么答案可能会更合适,当然也会对其他有类似问题的人有帮助。 – 2010-07-04 08:21:27

+1

@亨克因为包含“实时”一词而很难说出什么是被问到的 - 它已经吸引了关于实时编程的答案,并且这个问题在那个领域是没有意义的。如果不恰当地使用“实时”,最好再次提出问题。 – 2010-07-04 09:23:26

回答

0

当多个方法具有相同的目的,但有多种方法启动时,使用重载(推荐)。

所以我们宁愿

int Add(int a, int b) { ...} 
int Add(int a, int b, int c) { ... } 

int Add2(int a, int b) { ...} 
int Add3(int a, int b, int c) { ... } 

int Add(int a, int b, int? c) { ...} 

最后一个例子也可以用做(C#4)可选参数。

另一个很好的候选人超载:

void ReadXml(string fileName) { ... } 
void ReadXml(Stream strm) { .... } 
2

方法重载是一种用于类设计的OOP技术。它与实时开发无关。

如果您问的是现实世界中使用方法重载 - 这是一种有用的技术,您可以看到它在整个BCL中都被使用。

示例是一些Linq扩展方法,其中许多扩展方法有多个过载(请参阅IEnumerable<T>)。

根据参数(例如排序),可以通过几种不同方式完成同一操作时,最好使用方法重载。不带参数的重载可能会应用默认排序。带有排序顺序的重载将允许排序,而另一个排序可能会有一个确定排序算法的Func委托。

+0

稍微有点灵活性,我把它当作“现实生活”项目。 – 2010-07-04 08:15:32

+1

@亨克霍尔特曼 - 够公平的......我想我看到了“实时”,并立即想到了RT编程。 – Oded 2010-07-04 08:19:04

0

现在好吧,像初始化和命名参数在c#中的东西,它似乎并不是必要的。

+0

我想补充一点,如果你正在创建一个公共API,并且你想要真正锁定事物的使用方式,那么我认为这会更有用。 – spinon 2010-07-04 07:46:55

0

方法重载可能有用的一种情况是如果你正在构建一些公共API。例如,ASP.NET MVC使用它通过HTML帮助程序提供功能,您可以在其中使用不同参数多次重载同一方法。

相关问题