繁体   English   中英

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

[英]How to mark a method as obsolete or deprecated?

如何使用 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您可以将方法标记为已弃用。 它有三个构造函数:

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

在此处输入图片说明

对于依赖注入方法,将[Obsolete("description")]属性应用于声明而不是实现(对我来说:doh:时刻)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM