C# 何时使用[过时]或只是删除代码?

C# 何时使用[过时]或只是删除代码?,c#,C#,我很好奇什么时候有正确的时间使用属性[Observe],什么时候才删除代码。在某些模式(如Factory vs Builder)中,是否应该考虑这一点?谢谢 您应该在不受您控制的代码使用您的类的情况下使用它,并且您希望对公共API进行更改,在不破坏二进制兼容性的情况下阻止或阻止将来使用旧API方法/属性。您应该在不受您控制的代码的情况下使用它这会占用您的类,您希望更改公共API,并阻止或阻止将来使用旧API方法/属性,而不破坏二进制兼容性。如果它是公共API的一部分,删除它可能会让用户不高兴,因

我很好奇什么时候有正确的时间使用属性[Observe],什么时候才删除代码。在某些模式(如Factory vs Builder)中,是否应该考虑这一点?谢谢

您应该在不受您控制的代码使用您的类的情况下使用它,并且您希望对公共API进行更改,在不破坏二进制兼容性的情况下阻止或阻止将来使用旧API方法/属性。

您应该在不受您控制的代码的情况下使用它这会占用您的类,您希望更改公共API,并阻止或阻止将来使用旧API方法/属性,而不破坏二进制兼容性。

如果它是公共API的一部分,删除它可能会让用户不高兴,因为它会破坏现有代码。通常,当您希望维护公共API以实现向后兼容性,但不鼓励将来使用时,可以使用ObsoleteAttribute。该属性应该将用户引导到首选API。我投票将此问题作为离题问题结束,因为这属于Programmers.se,因为它涉及API设计的一般方法,而不是特定的编程问题。重复:@jeroenvanevel在引用其他网站时,指出如果它是公共api的一部分,删除它可能会让用户不高兴,因为它会破坏现有代码。通常,当您希望维护公共api以实现向后兼容性,但不鼓励将来使用时,可以使用ObsoleteAttribute。该属性应该将用户引导到首选API。我投票将此问题作为离题问题结束,因为这属于Programmers.se,因为它涉及API设计的一般方法,而不是特定的编程问题。重复:@jeroenvanevel在引用其他站点时,指出当我从另一个程序集调用一个方法时,我将收到与不推荐使用的方法有关的信息,这通常是有帮助的。运行该方法时,NicholasKinney不会这样说。它在Visual Studio环境中使用-显示在错误列表窗口中。如果您针对程序集
Z
的v1编译程序集
Y
,并使用方法
Foo()
,那么在程序集
Z
的v2中,您将
Foo()
标记为
[过时(“使用Bar(),true)]
,如果您只是将
Z
的v2放入带有已编译
Y
的文件夹中,则不会发生任何错误。但是,如果您在项目中引用
Z
的v2,并尝试重新编译
Y
,则会出现编译时错误,无法使用
Foo()
。可以安全地说,当我从另一个程序集调用一个方法时,我将收到与不推荐使用的方法有关的信息吗?@NicholasKinney在运行该方法时不会。它在Visual Studio环境中使用-显示在错误列表窗口中。如果您针对程序集
Z
的v1编译程序集
Y
,并使用方法
Foo()
,那么在程序集
Z
的v2中,您将
Foo()
标记为
[过时(“使用Bar(),true)]
,如果您只是将
Z
的v2放入带有已编译
Y
的文件夹中,则不会发生任何错误。但是,如果您在项目中引用
Z
的v2,并尝试重新编译
Y
,则会出现编译时错误,无法使用
Foo()