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

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

最简单的方法是将ObsoleteAttribute作为属性添加到方法中 。 确保包含适当的解释:

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

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

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

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

 [Obsolete] private static void SomeMethod() 

使用时会收到警告:

显示过时警告

并使用IntelliSense:

使用IntelliSense的过时警告

如果你想要一条消息:

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

这是IntelliSense工具提示:

IntelliSense显示过时的消息

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

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

使用时,这是你得到的:

方法用法显示为错误

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

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

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

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

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

在此处输入图像描述