【问题标题】:How can we mark a overloaded method obsolete?我们如何将重载的方法标记为过时?
【发布时间】:2014-05-24 08:06:23
【问题描述】:

我有两个函数:Method(A val)Method(B val),一个是 val,类型为 A,另一个是 B

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

我已经用[Obsolete] 修饰了这个方法,但是,我并不认为它已被弃用。

我错过了什么吗?根据我的研究,我只看到了创建一种全新方法来替换旧方法的示例,但没有看到任何重载函数取代旧的已弃用方法的示例。任何帮助将不胜感激。

【问题讨论】:

  • @MichaelPerrenoud 这不是重复的。如该帖子的答案所述,他已经在使用适当的属性。
  • @Servy,虽然 OP 没有发布代码,但几乎可以肯定 OP 没有使用正确的重载。该问题还有另一个与之相关的重复问题,它分解了三个重载。
  • @MichaelPerrenoud 那么对于初学者来说,您可以提出 that 作为副本,而不是包含 OP 已经声明他正在使用的信息的问题,即便如此,我在这些答案中仍然看不到对 OP 解决方案的解释。
  • @Servy,我想我可以,但我认为 OP 有这么大的能力。

标签: c# .net


【解决方案1】:

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

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

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

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

而另一个没有:

【讨论】:

  • +1,看,这就是我要说的。如果您有解决方案;提供它。 :D
【解决方案2】:

在另一个答案中,用户“Servy”提供了有关智能感知发生情况的详细信息 - 它在下拉列表中将它们组合在一起,并且任何过时的过载都将其标记为过时。我建议使用EditorBrowsable 属性在编辑器中隐藏已弃用的版本(智能感知)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2010-12-18
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2021-03-01
    • 2018-10-13
    相关资源
    最近更新 更多