方法重载 - 是好设计还是坏设计?

13

我喜欢重载方法来支持越来越多的默认情况。方法重载会有什么性能影响? 根据你的经验,是否建议进行方法重载? 有什么限制? 有哪些解决办法?


你可能会发现我这篇博文有用:方法重载的隐藏危险。我认为方法重载可能会对代码质量产生负面影响,因为在相同名称下维护两个或更多实现会引发隐藏的语义,必然导致误解和功能缺陷。 - yegor256
4个回答

12

5

如果您使用的是C# 4.0,您可以节省一些工作量并使用可选参数


2
  1. 性能影响,据我所知,它就像定义一个新方法。性能影响是硬盘空间。
  2. 重载方法是否可取,当然,它提供了方便。
  3. 限制是什么,就是你拥有的硬盘空间。

不要忘记内存使用,因为方法将被JIT编译。;-) - Steven

1
远离性能问题,如果过度使用重载,一旦有人开始维护代码,肯定会导致混淆。我更喜欢这样做:
Person GetPersonByID( int id );
Person GetPersonByName( String name );

在此之上:
Person GetPerson( int id );
Person GetPerson( String name );

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接