6. 属性
6.1 什么是属性?
最少有两种类型的 .NET 属性。第一类我称其为 metadata 属性—它允许将某些数据附加到类或方法上。这些数据称为类的 metadata 的一部分,并且可以像类的其它 metadata 一样通过映射来访问。metadata 的另一种属性是 [serializable],将它附加到类上表示类的实例可以被串行化。
[serializable] public class CTest {}
另一种类型的属性是上下文属性。上下文类型的属性使用和 metadata 相似的语法,但实际上它们是不同的。上下文类型属性提供一种解释机制,通过这种机制,实例的活动和方法调用可以是预先处理和/或随后处理的。如果你了解 Keith Brown 的通用委托器你可能熟悉这种思想。
 
6.2 我能创建自己的 metadata 属性吗?
是的。简单地从 System.Attribute 导出一个类并将其标记为 AttributeUsage 属性。例如:
[AttributeUsage(AttributeTargets.Class)]
public class InspiredByAttribute : System.Attribute
{
 public string InspiredBy;

public InspiredByAttribute( string inspiredBy )
 {
  InspiredBy = inspiredBy;
 }
}

[InspiredBy("Andy Mc's brilliant .NET FAQ")]
class CTest
{
}
class CApp
{
 public static void Main()
 {
             object[] atts = typeof(CTest).GetCustomAttributes();
             foreach( object att in atts )
             if( att is InspiredByAttribute )
              Console.WriteLine( "Class CTest was inspired by {0}", _
     ((InspiredByAttribute)att).InspiredBy  );
 }
}

NET 技术FAQ(六)-----属性相关推荐

  1. C++ 风格与技术 FAQ(中文版)

    Bjarne Stroustrup 的 C++ 风格与技术 FAQ(中文版) 原作:Bjarne Stroustrup    翻译:Antigloss 译者的话:尽管我已非常用心,力求完美,但受水平所 ...

  2. .NET 技术FAQ

    .NET 技术FAQ (青苹果工作室 2001年07月04日 16:08) 1. 简介 1.1 什么是 .NET? 1.2 .NET 只是 Windows DNA 的一个新名字吗? 1.3 .NET ...

  3. im即时通讯源码_IM消息ID技术专题(六):深度解密滴滴的高性能ID生成器(Tinyid)

    1.引言 在中大型IM系统中,聊天消息的唯一ID生成策略是个很重要的技术点.不夸张的说,聊天消息ID贯穿了整个聊天生命周期的几乎每一个算法.逻辑和过程,ID生成策略的好坏有可能直接决定系统在某些技术点 ...

  4. 20155201 网络攻防技术 实验六 信息搜集与漏洞

    20155201 网络攻防技术 实验六 信息搜集与漏洞 一.实践内容 各种搜索技巧的应用 DNS IP注册信息的查询 基本的扫描技术:主机发现.端口扫描.OS及服务版本探测.具体服务的查点 漏洞扫描: ...

  5. struts2原理分析之反射技术动态获取属性

    反射技术动态获取属性 知道struts2的流程的乡亲们都知道.struts2采用了动态获取属性的方法, 将表单里的数据传给了Action. 例如; 在struts2里有如下配置文件 <actio ...

  6. 属性加密技术及基于属性的ABE算法的访问控制技术介绍

    属性加密技术 基于身份的加密体制简介 基于身份的加密体制可以看作一种特殊的公钥加密,它有如下特点:系统中用户的公钥可以由任意的字符串组成.这些字符串可以是用户在现实中的身份信息,如:身份证号码.用户姓 ...

  7. 从零开始学习音视频编程技术(六) FFMPEG Qt视频播放器之显示图像

    从零开始学习音视频编程技术(六) FFMPEG Qt视频播放器之显示图像 原文地址:http://blog.yundiantech.com/?log=blog&id=9 前面讲解了如何用FFM ...

  8. 微型计算机原理与接口技术第六版周荷琴答案

    微机原理与接口技术第六版课后答案 [内容简介] 本书是为中国科学技术大学工科电子类专业本科生学习"微型计算机原理与系统"课程而编写的教材.微型计算机原理与接口技术第六版周荷琴答案从 ...

  9. 瑞波Ripple概念解析-技术FAQ(官方文档不完全翻译)

    技术FAQ 验证程序和唯一节点列表 交易验证节点提供什么服务? 验证程序确定交易是否符合协议要求,因此是"有效的".服务验证程序唯一提供的是将交易分组为有序单元,并专门对顺序达成一 ...

最新文章

  1. 机器学习模型五花八门不知道怎么选?这份指南告诉你
  2. Fedora重新调整发布周期,Fedora 30将保留很长时间
  3. 【windows7】解决IIS 80端口占用问题(亲测)
  4. CF思维联系--CodeForces -214C (拓扑排序+思维+贪心)
  5. 教你如何一篇博客读懂设计模式之—--工厂模式
  6. 0505.Net基础班第十三天(面向对象多态)
  7. Android:eclipse安装adt插件后工具栏不显示android相关图标
  8. JIT 编译器 是什么
  9. 有时更贵的ADC是最划算的
  10. 视频教程-ArcGIS开发arcpy教程-其他
  11. 天正建筑(TArch)8.0破解版下载(包含SP1、全系列注册机)
  12. 一线二线城市工作的区别
  13. BAT的校园大赛,都秀出了哪些肌肉?
  14. short 的算术运算
  15. django读取mysql事实数据_Django读取Mysql数据并显示在前端的实例
  16. 推荐几个常用常玩的小游戏网址包括4399.com
  17. 像FIFA一样踢球的AI,比打游戏更强吗?
  18. 那计算机的发展基础是什么呢,计算机的基础
  19. 【英语考研词汇训练营】Day 17 —— espresso,ultimate,gradually,detect,dimension
  20. 全面讲解手推实战之线性回归

热门文章

  1. java利己线程_java利己线程 | 学步园
  2. 图片裁剪_如何使用word裁剪图片图形?如何使用word修整图片?
  3. opencv python教程简书_OpenCV-Python教程:28.模板匹配
  4. linux系统电脑接硬盘盒,在linux系统下添加新硬盘
  5. linux安装jdk8和tomcat8
  6. esxi命令关机虚拟机_虚拟机镜像使用说明
  7. sql进程意外终止_字节跳动五面都过了,竟然意外被刷了下来,问了hr原因竟说是。。。。。...
  8. python调用sql数据库_Python3操作SQL Server数据库(实例讲解)
  9. 系统学习机器学习之神经网络(五) --ART
  10. yolov5继续训练_震惊! 它来了!YOLOv5它来了!