如何使用C#将方法标记为过时或已弃用?
最短的方法是将#0添加为属性到方法。确保包含适当的解释:
[Obsolete("Method1 is deprecated, please use Method2 instead.")]public void Method1(){ … }
如果从代码中的某个地方调用该方法,您也可以导致编译失败,将该方法的使用视为错误而不是警告:
[Obsolete("Method1 is deprecated, please use Method2 instead.", true)]
使用关键字Obsolete为方法添加注释。Message参数是可选的,但可以传达为什么该项目现在已经过时和/或使用什么代替。示例:
Obsolete
[System.Obsolete("use myMethodB instead")]void myMethodA()
用警告标记为已过时:
[Obsolete]private static void SomeMethod()
当你使用它时,你会得到一个警告:
使用IntelliSense:
如果您需要留言:
[Obsolete("My message")]private static void SomeMethod()
以下是IntelliSense工具提示:
最后,如果您希望将用法标记为错误:
[Obsolete("My message", true)]private static void SomeMethod()
使用时,这是你得到的:
注意:使用消息告诉人们他们应该使用什么,而不是为什么它过时了。
使用ObsoleteAttribute,您可以将方法标记为已弃用。它有三个构造函数:
ObsoleteAttribute
[Obsolete]:是一个无参数构造函数,是使用此属性的默认值。[Obsolete(string message)]:在这种格式中,您可以获得message为什么不建议使用此方法。此格式消息中的[Obsolete(string message, bool error)]:非常明确,但error意味着,在编译时,编译器必须显示错误并导致编译失败与否。
[Obsolete]:
[Obsolete(string message)]:
message
[Obsolete(string message, bool error)]:
error
对于依赖注入方法,将[Obsolete("description")]属性应用于声明而不是实现(: doh:我的时刻)
[Obsolete("description")]