gpt4 book ai didi

c#-4.0 - 使用可选参数实现向后兼容是个好主意吗?

转载 作者:行者123 更新时间:2023-12-01 23:25:31 24 4
gpt4 key购买 nike

我想知道如何通过使用可选参数来提供向后兼容性。

在我的程序中,我有一个带有函数的接口(interface),该函数在我的整个程序以及许多单元测试中都在使用。对于某些新功能,必须将一个 bool 值传递到此函数中,如果设置为 false,它将改变其行为。如果您传入 true,您将获得与以前相同的行为。

现在我必须在当前代码中我之前调用过此函数的任何地方传递 true。这就是为什么我在想:“好吧,我只是把 true 作为 bool 值的默认值。然后我只需要在我需要的几个新地方传入 false需要新的行为。”

不过,我觉得,我以这种方式制作界面的动机是现在必须减少编码。通常当那是我能想到的唯一动机时,它是一条捷径,以后可能会咬我。我想不出任何会在以后引起问题的东西,这就是为什么我在这里发布这个问题。

就我上面描述的情况而言,为了向后兼容(例如,在第三方使用的接口(interface)中),将新参数设置为可选参数通常是个好主意吗?

提前致谢。

最佳答案

我反对的充分理由是可选参数默认值仅在编译时使用(使用动态关键字时除外)。

因此,如果您的第三方试图在不重新编译他们的代码的情况下使用新版本(例如将您的库标记为 nuget 中的依赖项),它将不兼容,因为签名有一个额外的参数。

关于c#-4.0 - 使用可选参数实现向后兼容是个好主意吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7516256/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com