2016/11/10

[C#] 使用 Obsolete 屬性來標記過時的方法或物件

專案跑久了總是會有一些功能改寫或補強,考慮向前相容時又怕同事新寫的 code 去用到即將拔掉的功能




這時候使用 Obsolete 可以標記即將在未來移除的功能


[Obsolete("這要拔掉了,請改用 TestMethod2 喔")]
public void TestMethod(string tt)
{
    // more more code
}


被標記的功能被使用到時會有綠色的毛毛蟲出現



當滑鼠移上去時還會有提示,提示就是 Attribute 裡面寫的東西



除此之外,Build 程式碼的時候也會在 Output 視窗中看到 XD



不過這種不痛不癢的提示,對 ctrl+c, ctrl+v工程師可能起不了作用就是.....

另外 MEMO

Obsolete屬性的使用範圍是:

[AttributeUsageAttribute(AttributeTargets.Class 
    | AttributeTargets.Struct 
    | AttributeTargets.Enum 
    | AttributeTargets.Constructor 
    | AttributeTargets.Method 
    | AttributeTargets.Property 
    | AttributeTargets.Field 
    | AttributeTargets.Event 
    | AttributeTargets.Interface 
    | AttributeTargets.Delegate
    , Inherited = false)]

幾乎是全包了這樣



沒有留言:

張貼留言