可能重复:
如何将方法标记为已过时/已弃用?- C#
您如何将课程标记为已弃用?我不想在我的项目中再使用一个类,但不想在 2 周之前删除它。
您需要使用该[Obsolete]
属性。
例子:
[Obsolete("Not used any more", true)]
public class MyDeprecatedClass
{
//...
}
参数是可选的。第一个参数用于提供它过时的原因,最后一个参数是在编译时抛出错误而不是警告。
根据 Doak 的回答,但如果您希望代码编译,属性的第二个参数应设置为 false:
[Obsolete("Not used any more", false)]
public class MyDeprecatedClass
{
//...
}
这只会引发警告。
不删除类并弃用的原因是当您的代码是已建立的 API 然后被第三方使用时,要遵守一些“礼貌政策”。
如果你弃用而不是删除,你给消费者一个生命周期策略(例如,维护和类的存在直到版本 XX),以便允许他们计划适当的迁移到你的新 API。
如果您使用版本控制,我建议您只删除该类。没有理由使用未使用的代码。
如果您稍后决定要使用该类,版本控制将是一个方便的撤销。