C#中的Obsolete特性(Attribute)


試想一下,在代碼中如何給調用者提示所調用的方法並不是最優的,它可以被一個更好的方法所替代?通常來說,你可以使用Obsolete特性來標記該方法是一個被荒棄的方法。本文講述如何使用Obsolete特性及其相關內容。

Obsolete attribute位於System命名空間,它是一個attribute類型,以Obsolete或者ObsoleteAttribute來指定attribute類型都是允許的,在編譯時,會自動添加上 “Attribute” 后綴。

指定一個attribute,用方括號[]圍起所期望的attribute,置於所要修飾的方法、接口、屬性、委托、事件等語言元素之前。對於Obsolete attribute,還可以為其指定0、1或2個參數。

示例

using System;
class Program
{
    static void Main()
    {
        MethodA();
    }

    [Obsolete("Use MethodB instead")]
    static void MethodA()
    {

    }
}

該程序在編譯時會產生警告消息:警告 1 “Program.MethodA()”已過時:“Use MethodB instead” 。

對於C#中的其它構造器,用同樣的方法來使用Attributes。Obsolete attribute可以不含參數;可以含一個參數,用以產生一個編譯警告信息;也可以含兩個參數,第一個參數用以產生編譯警告/錯誤時的提示信息,第二個參數用以指定處理方式(true:產生編譯錯誤;false:產生編譯警告)。

對於有不同版本的程序代碼,obsolete attribute顯得大有用武之地。如果開發了一個新的方法,並且可以確定不再希望使用某方法,那么就可以使用Obsolete attribute來修飾該方法,編譯代碼后,按警告/錯誤提示信息逐一更正原來的代碼。在一個大型工程中,有助於協調不同的程序員所采用的方法。\

出處:http://www.cnblogs.com/hans_gis/archive/2011/11/19/2255592.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM