C# 標記不再使用程式碼的方法

在我們寫好的程式中,可能有些類別、方法、成員不會再使用,想要移除。但是通常越龐大的軟體越難說變就變,就算知道這些是過去的、舊的程式碼,想要換成新的寫法,很可能影響深遠,一不小心就引發連鎖反應,造成嚴重的後果。

所以面對這些已經或將要棄用、過時的類別、方法、成員,最好的辦法就是不要移除程式碼,而是加上註解(Attribute),通知大家這些將要被刪除,等到未來真的時機成熟(大家都替換完畢)再刪除,或是就讓他默默的待在那裡不刪除。

標記的方式很簡單,就是使用 ObsoleteAttribute,最基本的使用方式如下:
    
[Obsolete]
public class TestClass
{
    [Obsolete] public string Name { get; set; }

    [Obsolete]
    public void Method1()
    {
        Console.WriteLine(nameof(Method1));
    }
}
    

在上面的範例中我們已經將 TestClass 類別、Name 成員和 Method1 方法都標記為已棄用,只要有使用到這些程式碼的地方就會顯示警告:
    
CS0612 'TestClass' 已過時
    


除此之外,ObsoleteAttribute 還可以傳入兩個參數,Message 和 IsError,如果只傳入一個參數,就是要顯示的訊息,如果傳入兩個參數,就是前面是要顯示的訊息,後面是是否錯誤,如果 IsError = true ,則只要有使用就是錯誤,無法執行。
    
[Obsolete("此類別已棄用,請自己寫一個新的", true)]
public class TestClass
{
    [Obsolete] public string Name { get; set; }

    [Obsolete]
    public void Method1()
    {
        Console.WriteLine(nameof(Method1));
    }
}
    




參考資料:
Microsoft.Learn - ObsoleteAttribute Class

留言