有关自定义属性的相关详解 !

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace AttributeDemo
{


    /*
     *  有关该属性类的一些特性。
     *  AttributeUsage:指定自定义属性的所能够应用的类成员项。比如All所有、Assembly组件、Classic类、Delegates委托、Methods方法等.......
     *  Inherited:表示使用这一属性的类,其派生类是否可以继承基类的属性。
     *  AllowMultiple:表示使用这一属性的类,以否可同时应用该多个该属性的实例。
     **/
    [AttributeUsage(AttributeTargets.All | AttributeTargets.Class, Inherited = false, AllowMultiple = true)]

    /// <summary>
    /// 有关应用程序诸如更新日期、更新次数、作者以及版本数的相关说明性自定义属性类
    /// </summary>
    class CustomAttribute : System.Attribute
    {
        private string Author;            //作者
        public string Authors
        {
            get { return Author; }
            set { Author = value; }
        }
        private string lastUpdate;      //更新日期
        public string LastUpdate
        {
            get { return lastUpdate; }
            set { lastUpdate = value; }
        }
        private int numberUpdate;   //更新次数
        public int NumberUpdate
        {
            get { return numberUpdate; }
            set { numberUpdate = value; }
        }
        private string version;          //版本数
        public string Version
        {
            get { return version; }
            set { version = value; }
        }

        #region 自定义属性参数值【位置参数】 在使用该属性时,必须完全匹配。
        /// <summary>
        ///  带参构造函数对于字段进行初始化
        /// </summary>
        /// <param name="Author">作者</param>
        /// <param name="lastUpdate">更新日期</param>
        /// <param name="numberUpdate">更新次数</param>
        /// <param name="version">版本数</param>
        public CustomAttribute(string Author, string lastUpdate, int numberUpdate, string version)
        {
            this.Author = Author;
            this.lastUpdate = lastUpdate;
            this.numberUpdate = numberUpdate;
            this.version = version;
        }
        #endregion

        #region 自定义属性参数值【命令参数】在使用该属性时,可根据情况是否采用。
        /// <summary>
        ///  注释说明该程序用途的属性
        ///  注释说明应用该属性的程序的作用。(整个程序)
        /// </summary>
        public string ProgramComment
        {
            get { return ProgramComment; }
            set { ProgramComment = value; }
        }
        /// <summary>
        /// 注释说明该类用途的属性
        /// 注释说明应用该属性的类的作用(应用在类成员上)
        /// </summary>
        public string ClassComment
        {
            get { return ClassComment; }
            set { ClassComment = value; }
        }
        /// <summary>
        /// 注释说明该方法用途的属性
        /// 注释说明应用该属性的方法的作用(应用在方法成员上)
        /// </summary>
        public string MethodComment
        {
            get { return MethodComment; }
            set { MethodComment = value; }
        }
        #endregion

    }

 

 

 

 

 

    /*
        * 在使用自定义属性时,需要完全匹配位置参数、有选择性的匹配命令参数,也可不提供命令参数。
        * */
    [CustomAttribute("kewen", "2009-08-19", 1, "1.0", ClassComment = "在这里测试TextAttribute类是否应用了自定义属性")]
    class TextAttribute
    {

        ............

    }

 

 

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值