在设计一个流畅且依赖于扩展函数的库时,什么是提供扩展函数的替代行为的方法?
例如,一个执行某种格式化的库:
(123.456879)
.RoundTo(2) // Rounds to 2 places
.ToCurrency() // Applies the appropriate currency symbol
.ToString()
鉴于RoundTo
和ToCurrency
是扩展函数,改变RoundTo
和/或ToCurrency
行为的方法是什么?
谢谢, L -
答案 0 :(得分:2)
如果通过重写你的意思是在基类中使用虚拟扩展函数并在派生类中重写,则不能 - 扩展函数必须是静态的,并且不能覆盖静态函数。
编辑:在您澄清之后,也许您可以为库编写configuration section(或只使用应用程序设置)并让您的库读取配置参数。