提问



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

最佳参考


最短的方法是将ObsoleteAttribute作为属性添加到方法中。确保包含适当的解释:[15] [16]


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


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


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

其它参考1


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


[Obsolete]
private static void SomeMethod()


使用时会收到警告:





并使用IntelliSense:





如果你想要一条消息:


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


这是智能感知工具提示:





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


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


使用时,这是你得到的:





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

其它参考2


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


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

其它参考3


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



  

      
  1. [Obsolete]:是一个无参数构造函数,是使用此属性的默认值。

  2.   
  3. [Obssolete(string message)]:在这种格式中你可以得到message为什么不推荐使用这种方法。

  4.   
  5. [Obsolete(string message, bool error)]:这种格式的消息是非常明确的,但error意味着,在编译时,编译器必须显示错误并导致编译失败。

  6.   



[17]