【发布时间】:2011-09-22 22:33:49
【问题描述】:
我想知道通过使用可选参数来提供向后兼容性。
在我的程序中,我有一个接口,该接口带有一个在整个程序以及许多单元测试中都使用的函数。对于某些新功能,必须将布尔值传递给此函数,如果设置为false,它将改变其行为。如果你传入true,你会得到和以前一样的行为。
现在我必须在我之前调用此函数的当前代码中的任何地方传递true。这就是为什么我在想:“好吧,我只是将true 作为布尔值的默认值。然后我只需在需要新行为的几个新地方传入false。”
然而,我觉得我以这种方式制作界面的动机是现在必须减少编码。通常当这是我能想到的唯一动机时,它是一条捷径,以后可能会咬我。我想不出任何会在以后引起问题的事情,这就是我在这里发布这个问题的原因。
在我上面描述的情况下,一般来说,为向后兼容(例如在第三方使用的接口中)设置一个新参数是一个好主意吗?
提前致谢。
【问题讨论】:
标签: c#-4.0 backwards-compatibility optional-parameters