什么是java中的@Deprecated的.NET等价物?

pet*_*ust 12 .net c# metadata

.NET中是否有注释允许方法或类被弃用,以便编译器识别它们的使用和调用者(参见Java中的@Deprecated)

Tho*_*rin 43

[Obsolete]属性.

您可以添加对人们应该使用的内容的评论,例如:

[Obsolete("Use NewMethod() instead")]
public void OldMethod()
{
}
Run Code Online (Sandbox Code Playgroud)

如果要在人们使用您的方法时生成编译器错误:

[Obsolete("Use NewMethod() instead", true)]
public void OldMethod()
{
}
Run Code Online (Sandbox Code Playgroud)

这是一个方法的示例,但它几乎可以在任何属性目标上使用.请参阅此处获取完整文档.


由于问题略有编辑,我还将添加VB.NET语法,以涵盖最常见的.NET语言:

<Obsolete("Use NewMethod() instead")> _
Public Sub OldMethod()
End Sub
Run Code Online (Sandbox Code Playgroud)


the*_*oop 9

[已淘汰] - 请参阅此处了解相关文档.如果有人试图使用它,那么将它添加到方法或类将给出编译器警告,如果需要,可以使用您给该属性的自定义消息