【发布时间】:2013-02-14 07:12:33
【问题描述】:
我的客户提出了一个奇怪的要求,即对于项目代码中的每个 .ToString() 调用,我们都应该进行自定义操作(例如在 db 中添加一行)
我觉得扩展方法对我来说非常有用,如果它为我提供了覆盖工具。
为什么微软不允许扩展方法覆盖类方法的现有行为?
我听说编译器将扩展方法的优先级低于类方法。有没有办法将编译器修改为优先于扩展方法而不是类方法?
【问题讨论】:
-
这是一个真的奇怪的要求。我建议你简单地推回它。 (客户端是否希望每次对 ToString 的 隐式 调用都具有这种行为,例如在字符串连接中?在 .NET 框架代码中对 ToString 的调用呢?)
-
我同意。教育你的客户。这也是您作为顾问工作的一部分。
-
我也同意这一点 :).. 感谢您的 cmets..
-
这可能是向您的客户解释的好读物codinghorror.com/blog/2008/07/monkeypatching-for-humans.html
-
瞧!我不知道这个..很棒的分享..超级喜欢..