作者热门文章
- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我经常遇到这样的情况,我想劝阻其他开发人员不要继续使用某个方法或类。例如,假设我有两个库方法“A”和“B”,其中“A”是执行某些任务的“旧”方式,而“B”是执行该任务的"new"方式。在许多情况下,A 和 B 有足够的不同,使得使用 A 开始使用 B 的重构代码非常重要(例如,需要流过额外的状态)。由于 A 在使用它的情况下有效,我不想优先考虑重构。但是,我确实想给我的开发人员一个直观的指示,表明 A 不会在新代码中使用。
因此,我希望您在使用 ObsoleteAttribute
引用成员时得到删除线。没有相关的编译器警告/错误(因为打开它会从 A 的所有旧用法中发出数百个错误,我们不打算很快解决这些错误)。这样,如果开发人员使用 A 编写新代码行,他或她会立即注意到删除线并修复代码以使用 B。
有没有办法在 VisualStudio (2012) 中获得这样的功能?
编辑:
ObsoleteAttribute
通过编译器警告实现这一点,但这些警告只会从旧 API 的数百种现有用途中产生大量噪音。这就是我喜欢删除线的原因:它非常直观,但只有在开发人员阅读或编写使用过时 API 的代码时,它才会打扰到开发人员。以下是我想标记旧 API 的一些更改示例:ObsoleteAttribute
的存在。 .请注意,此问题的文本始终引用该属性。 最佳答案
添加 Obsolete您的方法的属性将在智能感知中添加删除线。
[ObsoleteAttribute("This property is obsolete. Use NewProperty instead.", false)]
public static string OldProperty
{ get { return "The old property value."; } }
#pragma warning disable 612, 618
#pragma warning restore 612, 618
<WarningsNotAsErrors>618</WarningsNotAsErrors>
EditorBrowsable
attribute 的回答.
#pragma warning disable 612, 618
[Obsolete]
#pragma warning restore 612, 618
public class test1
{...
test1
时你会得到:
var test = new test1()
时删除线不会发生。
test1 test = new test1()
将显示删除线。
关于c# - 如何将代码标记为 "not for future use",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21125799/
我是一名优秀的程序员,十分优秀!