找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 868|回复: 0

[分享] C#自定义属性的相关知识介绍

[复制链接]

已领礼包: 859个

财富等级: 财运亨通

发表于 2014-5-11 14:25:20 来自手机 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 csharp 于 2014-5-13 11:14 编辑

http://www.csharpwin.com/csharpspace/9312r374.shtml

C#自定义属性的相关知识示例代码如下:
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
    {
        ............
    }
}

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-17 22:19 , Processed in 0.357516 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表