如何标记一个重载方法已过时?

4
我有两个函数:Method(A val)Method(B val),一个接受类型为Aval,另一个接受类型为Bval
我想标记Method(A val)已弃用,以便IDE可以突出显示它已弃用的事实。
我已经使用[Obsolete]修饰该方法,但是没有看到它作为过时的内容。
我是否错过了什么?从我的研究中,我只看到了创建一个全新的方法来代替旧的方法的示例,但没有看到任何例子重载功能取代旧的废弃的方法。任何帮助都将不胜感激。

2
可能是重复的问题:如何将一个类标记为已弃用? - Mike Perrenoud
3
@MichaelPerrenoud 这不是重复的问题。他已经使用了适当的属性,正如该帖子答案中所描述的那样。 - Servy
1
@Servy,尽管OP没有发布代码,但几乎可以确定OP没有使用正确的重载。该问题还有另一个与之相关的重复问题,其中包含了三个重载的详细信息。 - Mike Perrenoud
2
@MichaelPerrenoud 那么,首先您可以提出这个内容作为重复问题,而不是包含OP已经声明使用的信息的问题,即使如此,在那些答案中我仍然看不到OP的解决方案的解释。 - Servy
1
@Servy,我想我可以这样做,但我认为原帖作者应该有这种能力。 - Mike Perrenoud
显示剩余2条评论
2个回答

7

Intellisense 不仅考虑单个重载已经被弃用,而是在显示时将整个方法标记为已弃用。

如果我们查看整个方法的 Intellisense 弹出窗口:

enter image description here

与特定重载的弹出窗口相比:

enter image description here

但关键点是一旦我们完成对该方法的调用,弃用的重载会导致警告(或错误):

enter image description here

而其他重载则不会:

enter image description here


1
+1,看到了,这就是我想说的。如果你有解决方案,请提供吧。 :D - Mike Perrenoud

0
在另一个答案中,用户“Servy”提供了有关Intellisense发生的情况的详细信息 - 它将它们分组放在下拉菜单中,并将任何过时的重载标记为已过时。我建议使用 EditorBrowsable属性在编辑器(Intellisense)中隐藏已弃用的版本。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接