关于c#:如何将类标记为已弃用?

How to mark a class as Deprecated?

本问题已经有最佳答案,请猛点这里访问。

Possible Duplicate:
How do I mark a method as Obsolete/Deprecated? - C#

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


您需要使用属性[Obsolete]

这是一个例子:

1
2
3
4
5
[Obsolete("Not used any more", true)]
public class MyDeprecatedClass
{
    //...
}

您没有使用参数,它们是可选的(重载方法)。第一个参数是有原因的,最后一个参数是在编译时标记错误而不是警告。


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

1
2
3
4
5
[Obsolete("Not used any more", false)]
public class MyDeprecatedClass
{
        //...
}

这只会引发警告。


不删除类和不推荐使用的原因是,当代码是已建立的API,然后被第三方使用时,要遵守一些"礼貌策略"。

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


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

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