我应该在实时开发中何时使用方法重载,请提供一些链接。
答案 0 :(得分:3)
方法重载是一种用于类设计的OOP技术。它与实时开发无关。
如果您询问方法重载的实际用途 - 这是一种有用的技术,您可以看到它在整个BCL中使用。
示例是一些Linq扩展方法,其中许多扩展方法都有多个重载(请参阅IEnumerable<T>
)。
当根据参数(例如排序)以多种不同方式完成相同的操作时,最好使用方法重载。没有参数的重载可能会应用默认排序。具有排序顺序的重载将允许排序顺序,而另一个可能具有确定排序算法的Func
委托。
答案 1 :(得分:1)
当多个方法具有相同的目的但启动它的方法不止一种时,使用(推荐)重载。
所以我们宁愿拥有
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 :(得分:0)
现在使用c#中的初始化器和命名参数之类的东西,它似乎并不是必要的。
答案 3 :(得分:0)
方法重载可能有用的一种情况是,如果您正在构建一些公共API。例如,ASP.NET MVC使用它来通过HTML帮助程序提供功能,您可以使用不同的参数多次重载相同的方法。