228

可能重复:
如何将方法标记为已过时/已弃用?- C#

您如何将课程标记为已弃用?我不想在我的项目中再使用一个类,但不想在 2 周之前删除它。

4

4 回答 4

405

您需要使用该[Obsolete]属性。

例子:

[Obsolete("Not used any more", true)]
public class MyDeprecatedClass
{
    //...
}

参数是可选的。第一个参数用于提供它过时的原因,最后一个参数是在编译时抛出错误而不是警告。

于 2008-11-24T15:38:39.287 回答
47

根据 Doak 的回答,但如果您希望代码编译,属性的第二个参数应设置为 false:

[Obsolete("Not used any more", false)]
public class MyDeprecatedClass
{
        //...
}

这只会引发警告。

于 2011-10-12T11:01:41.857 回答
24

不删除类并弃用的原因是当您的代码是已建立的 API 然后被第三方使用时,要遵守一些“礼貌政策”。

如果你弃用而不是删除,你给消费者一个生命周期策略(例如,维护和类的存在直到版本 XX),以便允许他们计划适当的迁移到你的新 API。

于 2009-04-28T11:14:03.857 回答
-9

如果您使用版本控制,我建议您只删除该类。没有理由使用未使用的代码。

如果您稍后决定要使用该类,版本控制将是一个方便的撤销。

于 2008-11-24T15:43:19.540 回答