3 回答

TA貢獻(xiàn)1815條經(jīng)驗(yàn) 獲得超10個(gè)贊
更新
現(xiàn)在可以使用Roslyn(Visual Studio 2015)。你可以建立一個(gè)代碼分析器來(lái)檢查自定義屬性
我不相信這是可能的。ObsoleteAttribute由編譯器專(zhuān)門(mén)處理,并在C#標(biāo)準(zhǔn)中定義。為什么ObsoleteAttribute不被接受?在我看來(lái),這正是它所設(shè)計(jì)的情況,并準(zhǔn)確地實(shí)現(xiàn)了您的需求!
另請(qǐng)注意,Visual Studio也會(huì)即時(shí)獲取由ObsoleteAttribute生成的警告,這非常有用。
不要意味著無(wú)益,只是想知道你為什么不熱衷于使用它...
不幸的是,ObsoleteAttribute是密封的(可能部分是由于特殊處理),因此您無(wú)法從中繼承自己的屬性。
從C#標(biāo)準(zhǔn): -
屬性O(shè)bsolete用于標(biāo)記不再使用的類(lèi)型和類(lèi)型成員。
如果程序使用使用Obsolete屬性修飾的類(lèi)型或成員,則編譯器會(huì)發(fā)出警告或錯(cuò)誤。具體而言,如果未提供錯(cuò)誤參數(shù),或者提供了錯(cuò)誤參數(shù)且值為false,則編譯器會(huì)發(fā)出警告。如果指定了error參數(shù)并且值為true,則編譯器會(huì)發(fā)出錯(cuò)誤。
這不能總結(jié)你的需求嗎?......你不會(huì)做得比我想象的更好。

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超11個(gè)贊
在某些編譯器中,您可以使用#warning發(fā)出警告:
#warning "Do not use ABC, which is deprecated. Use XYZ instead."
在Microsoft編譯器中,您通??梢允褂孟⒕幾g指示:
#pragma message ( "text" )
你提到過(guò).Net,但沒(méi)有說(shuō)明你是用C / C ++還是用C#編程。如果您使用C#進(jìn)行編程,那么您應(yīng)該知道C#支持#warning格式。
- 3 回答
- 0 關(guān)注
- 329 瀏覽
添加回答
舉報(bào)