Chr*_*nce 1525
最简单的方法是将ObsoleteAttributeas 属性添加到方法中.确保包含适当的解释:
[Obsolete("Method1 is deprecated, please use Method2 instead.")]
public void Method1()
{ … }
Run Code Online (Sandbox Code Playgroud)
您还可以导致编译失败,如果从代码中的某处调用此方法,则将方法的用法视为错误而不是警告:
[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
Run Code Online (Sandbox Code Playgroud)
mar*_*k_h 117
要通过警告标记为已废弃:
[Obsolete]
private static void SomeMethod()
Run Code Online (Sandbox Code Playgroud)
使用时会收到警告:

并使用IntelliSense:

如果你想要一条消息:
[Obsolete("My message")]
private static void SomeMethod()
Run Code Online (Sandbox Code Playgroud)
这是IntelliSense工具提示:

最后,如果您希望将用法标记为错误:
[Obsolete("My message", true)]
private static void SomeMethod()
Run Code Online (Sandbox Code Playgroud)
使用时,这是你得到的:

注意:使用该消息告诉人们应该使用什么,而不是为什么它已经过时.
jch*_*ell 66
使用关键字向方法添加注释Obsolete.消息参数是可选的,但是一个好主意是传达为什么该项目现在已过时和/或使用什么.
例:
[System.Obsolete("use myMethodB instead")]
void myMethodA()
Run Code Online (Sandbox Code Playgroud)
Sin*_*tfi 31
随ObsoleteAttribute你可以显示[Obsolete]:方法.过时的属性有三个构造函数:
[Obsolete(string message)]:是一个无参数构造函数,并且是使用此属性的默认值.message在这种格式中,您可以了解[Obsolete(string message, bool error)]:为何不推荐使用此方法.error在这种格式中,消息是非常明确的,但ObsoleteAttribute意味着,在编译时,编译器必须显示错误并导致编译失败.