网站大量收购独家精品文档,联系QQ:2885784924

c高级编程继承九章特性.pptx

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

C#高级编程第九章C#特性编程

本章目标.NET特性的作用构建自定义特性(重点)使用晚期绑定反射特性构建可扩展的应用程序(难点)面向切面编程序AOP(难点)

本章任务构建和调用通用插件实现日志功能

特性特性是能够构建一组被特定的某些程序集理解的“关键字”特性的作用向程序中添加元数据。将一个或多个特性应用到整个程序集、模块或较小的程序元素(如类和属性)。与方法和属性相同的方式接受参数。使用反射检查自己的元数据或其他程序内的元数据。

预定义特性特性作用[CLSCompliant]强制被注释项遵从CLS。符合CLS的类型将确保无缝地跨越所有的.NET编程语言[DllImport]允许.NET代码调用任意非托管的C或C++基础类库,包括操作系统中的API。注意当与基于COM软件通信时,[DllImport]不能使用[Obsolete]标记一个不用的类或成员。如果其他程序员试图使用该项,他们将会收到一个描述出错信息的编译轚告[Serializabe]标记一个类或结构可以被“序列化”,怠味者它可以将当前状态持久化到数据流中[NonSerialized]指定类或结构中的某个字段不能在序列化过程中被持久化[WebMethod]标记一个方法可以通过HTTP请求调用,并且通知CLR将方法的返回值序列化为XML

.NET特性的作用使用特性的地方开发工具.NET基础类库使用特性[Serializable]publicclassStudent{[NonSerialized]stringStuNo=;stringCName=;stringClassName=;intAge=18;}该类可以保存到磁盘该字段不能被持久化这些字段要被持久化

.NET特性的作用特性简化符号Obsolete特性的定义[SerializableAttribute][ObsoleteAttribute(此类已过时!)]publicclassStudent{//...}这是原始写法,加了AttributepublicsealedclassObsoleteAttribute:Attribute{publicObsoleteAttribute();publicObsoleteAttribute(stringmessage);publicObsoleteAttribute(stringmessage,boolerror);publicboolIsError{get;}publicstringMessage{get;}}提供了几个构建函数

.NET特性使用要点特性是派生System.Attribute的类。特性导致嵌入的元数据。直到被其他代理反射,特性才发挥使用。特性在中用方括号来应用。

构建定义特性构建自定义特性使用自定义的特性publicsealedclassStudentDescriptionAttribute:System.Attribute{publicstringDescription{get;set;}publicStudentDescriptionAttribute(){}publicStudentDescriptionAttribute(stringdescription){Description=description;}}特性基类[Serializable][StudentDescription(Description=学生)]publicclassStudent{}[Serializable][StudentDescription(小学生)]publicclassPupil{}合法的合法的只有特性提供一个可写.NET的属性,命名属性的语法才是合法的

限制特性的使用定义了一个特性可能的目标值使用AttributeUsage特性来注释我们的自定义特性publicenumAttributeTargets{All,Assembly,Class,Calculator,Delegate,Enum,Event,Field,GenericParameter,Interface,Method,Module,Parameter,Property,ReturnValue,Struct}[AttributeUsage(AttributeTargets.Class|AttributeTargets.Struct,Inherited=false)]publicsealedclassStudentDescri

文档评论(0)

159****9610 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:6044052142000020

1亿VIP精品文档

相关文档