色尼玛亚洲综合影院,亚洲3atv精品一区二区三区,麻豆freexxxx性91精品,欧美在线91

C#特性Attribute的實際應用之:代碼統計分析

  日常工作中,需要為程序集提供統計分析:

  1:程序集方法數;

  2:開發人員數目及各自所開發或REVIEW的方法數;

  3:測試中,被標注有BUG的數目;

  4:直接查看方法的IL代碼;

  鑒于以上統計的需要,特開發本EXE。

  1:關于特性Attribute的知識補充

  "Attribute是一種可由用戶自由定義的修飾符(Modifier),可以用來修飾各種需要被修飾的目標"。它的作用是為它們的修飾目標追加上一些額外的信息——比如"這個類是我寫的"或者"這個函數以前出過問題"等等。

  它跟注釋的區別是:注釋是對程序源代碼的一種說明,主要目的是給人看的,在程序被編譯的時候會被編譯器所丟棄,因此,它絲毫不會影響到程序的執行。而Attribute是程序代碼的一部分,不但不會被編譯器丟棄,而且還會被編譯器編譯進程序集(Assembly)的元數據(Metadata)里,在程序運行的時候,你隨時可以從元數據里提取出這些附加信息來決策程序的運行。

  本文所依據的就是特性這個特點。

  2:基礎模塊XP.AttributeClass

  根據文章開頭的要求:統計開發者、reviewer、bug信息,需要創建一個可被客戶端項目引用的類庫項目XP.AttributeClass。該項目包含三個Attribute類:CreaterAttribute、ReviewerAttribute、BugAttribute。分別如下:

代碼
    [AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = false)]
public class CreaterAttribute : Attribute
{
public CreaterAttribute(string creater, string createDate)
{
Creater = creater;
CreateDate = createDate;
}
public string Creater { get; private set; }
public string CreateDate { get; private set; }
}

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Method, AllowMultiple = true)]
public class ReviewerAttribute : Attribute
{
public ReviewerAttribute(string reviewer, string reviewDate)
{
Reviewer = reviewer;
ReviewDate = reviewDate;
}
public string Reviewer { get; private set; }
public string ReviewDate { get; private set; }
}

[AttributeUsage(AttributeTargets.Method, AllowMultiple = false)]
public class BugAttribute : Attribute
{
public BugAttribute(bool isBug, string bugDate)
{
this.IsBug = isBug;
this.BugDate = bugDate;
}
public bool IsBug { get; private set; }
public string BugDate { get; private set; }
}

NET技術C#特性Attribute的實際應用之:代碼統計分析,轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 原阳县| 武宣县| 泗阳县| 万荣县| 永胜县| 衡阳县| 华容县| 鄂州市| 大安市| 垫江县| 财经| 桑植县| 德昌县| 黑河市| 阳西县| 凤山县| 昂仁县| 平塘县| 囊谦县| 新和县| 田东县| 洱源县| 凭祥市| 宝山区| 巫溪县| 巴彦县| 奇台县| 华坪县| 崇州市| 淳安县| 双牌县| 察隅县| 广西| 池州市| 枣庄市| 安宁市| 富宁县| 皋兰县| 河源市| 登封市| 昆山市|