如何将方法标记为已过时或已弃用?

问题描述 投票:888回答:4

如何使用C#将方法标记为已过时或已弃用?

c# .net versioning
4个回答
1456
投票

最短的方法是将ObsoleteAttribute添加为attribute to the method。确保包含适当的解释:

[Obsolete("Method1 is deprecated, please use Method2 instead.")]
public void Method1()
{ … }

您还可以导致编译失败,如果从代码中的某处调用此方法,则将方法的用法视为错误而不是警告:

[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]

106
投票

要通过警告标记为已废弃:

[Obsolete]
private static void SomeMethod()

使用时会收到警告:

并使用IntelliSense:

如果你想要一条消息:

[Obsolete("My message")]
private static void SomeMethod()

这是IntelliSense工具提示:

最后,如果您希望将用法标记为错误:

[Obsolete("My message", true)]
private static void SomeMethod()

使用时,这是你得到的:

注意:使用该消息告诉人们应该使用什么,而不是为什么它已经过时。


62
投票

使用关键字Obsolete为方法添加注释。消息参数是可选的,但是一个好主意是传达为什么该项目现在已过时和/或使用什么。 例:

[System.Obsolete("use myMethodB instead")]
void myMethodA()

27
投票

使用ObsoleteAttribute,您可以显示已弃用的方法。过时的属性有三个构造函数:

  1. [Obsolete]:是一个无参数构造函数,是使用此属性的默认值。
  2. [Obsolete(string message)]:以这种格式你可以得到message为什么这个方法被弃用。
  3. 这种格式消息中的[Obsolete(string message, bool error)]:非常明确,但error意味着,在编译时,编译器必须显示错误并导致编译失败。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.