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

时间:2009-11-18 21:53:38

标签: c# .net versioning

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

4 个答案:

答案 0 :(得分:1437)

最短的方法是将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)]

答案 1 :(得分:100)

通过警告标记为过时:

[Obsolete]
private static void SomeMethod()

使用时会收到警告:

Obsolete warning is shown

使用IntelliSense:

Obsolete warning with IntelliSense

如果您想要留言:

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

这是智能感知工具提示:

IntelliSense shows the obsolete message

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

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

使用时,这就是你得到的:

Method usage is displayed as an error

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

答案 2 :(得分:61)

使用关键字Obsolete为方法添加注释。消息参数是可选的,但是很好地交流为什么该项目现在已过时和/或使用什么 例如:

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

答案 3 :(得分:24)

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

  
      
  1. [Obsolete]:是一个无参数构造函数,是使用此属性的默认值。
  2.   以此格式
  3. [Obsolete(string message)]:,您可以message了解不推荐使用此方法的原因。
  4.   此格式消息中的
  5. [Obsolete(string message, bool error)]:非常明确,但error表示编译时必须显示错误并导致编译失败。
  6.   

enter image description here