2010-06-13 61 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)]