可能的重复: 我如何标记一个方法为过时/弃用?- C #

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


您需要使用[Obsolete]属性。

例子:

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

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


如果你使用版本控制,我建议只删除类。没有理由到处都是未使用的代码。

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


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

如果您弃用而不是删除,那么您就为使用者提供了一个生命周期策略(例如,在版本X.X之前维护和存在类),以允许他们计划适当的迁移到您的新API。


根据Doak的回答,但是如果你想编译代码,属性的第二个参数应该设置为false:

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

这只会抛出警告。