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

    技术2022-05-11  15

    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    {

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

        }

     

     

    }


    最新回复(0)