2010-06-13 66 views
3

在C#有属性,如[过时]为创建将在Visual Studio中所示被编译器警告。属性来标记码

有没有我可以使用标记方法或带有注释一类应显示为在Visual Studio中的警告,当我编译属性?

喜欢的东西:

[TBD(Msg="Please change me after 2010 07 20")] 
public void Foo(){ 
} 

还是有,我可以从System.Attribute派生并作出自己的属性,配置的Visual Studio,使其表现为我所描述的可能性。

UPDATE

感谢所有对你的答案 我已经接受了来自Robaticus的答案,因为他向我表明我真正需要的解决方案:

#warning Message 

显示,我想所需的信息而且它没有任何开销。谢谢!

但是我搜索在错误的方向,因此问错了问题。对于那些谁正在阅读这篇文章,有兴趣的回答最初的问题,我找到链接,马克Rushakoff具有 posted 是非常有趣的。在这篇文章中,Pablo Fernandez展示了一种聪明的方式,在属性上使用属性来完成我所要求的功能。

+0

为什么不使用过时的有约会吗? – 2010-06-13 14:00:17

+0

你想要什么和'[Obsolete]'已经为你做了什么?的 – 2010-06-13 14:02:29

+1

可能重复的[自定义编译器警告(http://stackoverflow.com/questions/154109/custom-compiler-warnings) – 2010-06-13 14:02:47

回答

3

另一种选择是不要做预处理指令:

#warning Please change this code after 2010 07 20 
+2

这是一个无条件警告,当使用方法/对象时不是警告。 – 2010-06-13 14:05:48

7

使用second parameter做到这一点。

//Compiling error 
[System.Obsolete("Obsolete use blah instead", true)] 


//Compiling warning 
[System.Obsolete("Obsolete use blah instead", false)]