gpt4 book ai didi

c# - 在类库中添加可选参数不提供向后兼容性

转载 作者:行者123 更新时间:2023-11-30 21:46:11 27 4
gpt4 key购买 nike

我正在我的类库中添加可选参数

例子

public static string GetData(string name, string surname, bool status = false){}

我的 ASPX 页面正在调用方法

GetData(string name, string surname)

我刚刚重建了 ClassLibrary 而不是 ASP 页面。然后它抛出错误找不到方法

请帮忙如何保持向后兼容性?意味着如果我只 replce classlibrary 那么它不应该影响我的 ASP 页面。我将使用 .NET 版本 4

谢谢

最佳答案

如果你真的想要二进制兼容性那么是的,你甚至不能添加一个可选参数。您可以做的是添加一个重载:

之前:

public static string GetData(string name, string surname)
{
// Real code
}

之后:

public static string GetData(string name, string surname)
{
return GetData(name, surname, false);
}

public static string GetData(string name, string surname, bool status)
{
// Real code
}

请注意,您可以status 设为可选,但这没有多大意义,因为任何不提供参数的调用者最终都会调用双参数版本.不过,如果您要添加多个参数,它会更有意义。

您可能很想考虑您是否可以接受“重建兼容性”,即“如果我重建一切都好”。严格的向后兼容性可能会受到很大的限制 - 如今,与在构建时选择新的包版本相比,只是将新的二进制文件放入构建的应用程序中相对较少。

关于c# - 在类库中添加可选参数不提供向后兼容性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39447665/

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