我们如何标记过载的方法已过时?

时间:2014-04-10 14:30:24

标签: c# .net

我有两个功能:Method(A val)Method(B val),一个val类型A,另一个类型B

我想将Method(A val)标记为过时,以便IDE可以突出显示它已过时的事实。

我使用[Obsolete]修饰了方法,但是,我没有将其视为已弃用。

我错过了什么吗?根据我的研究,我只看到了创建一个全新方法来替换旧方法的例子,但没有看到任何一个重载函数的例子取代了旧的已弃用的方法。任何帮助都将受到高度赞赏。

2 个答案:

答案 0 :(得分:7)

Intellisense并不仅仅考虑单个过载折旧;它认为整个方法在它所显示的内容中已被弃用。

如果我们查看整个方法的智能感知弹出窗口:

  

enter image description here

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

  

enter image description here

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

  

enter image description here

而另一个则没有:

  

enter image description here

答案 1 :(得分:0)

在另一个答案中,用户“Servy”提供了intellisense正在进行的细节 - 它在下拉列表中将它们组合在一起,任何过时的过载都将其标记为过时。我建议使用EditorBrowsable属性在编辑器中隐藏已弃用的版本(intellisense)。