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

C#特性Attribute的實(shí)際應(yīng)用之:代碼統(tǒng)計(jì)分析

  日常工作中,需要為程序集提供統(tǒng)計(jì)分析:

  1:程序集方法數(shù);

  2:開發(fā)人員數(shù)目及各自所開發(fā)或REVIEW的方法數(shù);

  3:測(cè)試中,被標(biāo)注有BUG的數(shù)目;

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

  鑒于以上統(tǒng)計(jì)的需要,特開發(fā)本EXE。

  1:關(guān)于特性Attribute的知識(shí)補(bǔ)充

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

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

  本文所依據(jù)的就是特性這個(gè)特點(diǎn)。

  2:基礎(chǔ)模塊XP.AttributeClass

  根據(jù)文章開頭的要求:統(tǒng)計(jì)開發(fā)者、reviewer、bug信息,需要?jiǎng)?chuàng)建一個(gè)可被客戶端項(xiàng)目引用的類庫(kù)項(xiàng)目XP.AttributeClass。該項(xiàng)目包含三個(gè)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技術(shù)C#特性Attribute的實(shí)際應(yīng)用之:代碼統(tǒng)計(jì)分析,轉(zhuǎn)載需保留來源!

鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請(qǐng)第一時(shí)間聯(lián)系我們修改或刪除,多謝。

主站蜘蛛池模板: 行唐县| 北票市| 曲靖市| 开阳县| 象州县| 晋城| 濮阳县| 华安县| 鄯善县| 江陵县| 石楼县| 永州市| 拉萨市| 融水| 石嘴山市| 兴仁县| 尤溪县| 雷波县| 黔西| 津南区| 外汇| 泰顺县| 新泰市| 大荔县| 大姚县| 弥渡县| 平凉市| 谷城县| 临城县| 清苑县| 南郑县| 九江市| 扶风县| 台东市| 炉霍县| 闸北区| 清水河县| 城固县| 和硕县| 惠来县| 宝兴县|