C#的第21节课

来源:互联网 发布:mysql压缩版怎么安装 编辑:程序博客网 时间:2024/05/16 15:59

主讲:反射和属性

主要内容:反射的概念

                     使用反射来确定程序的内容

                       如何使用预定义的属性

                       创建自定义的属性

                       如何将自定义属性于代码关联起来

                        编写在运行阶段对属性进行评估的代码

 21.1反射      

21.2属性,事物随时间的流逝而变化,就像你现在正在变化主题 ,21.2.1何为属性 使用属性的重要原因之一是为了将额外的信息与C#程序中的代码关联起来,这样便可以在运行阶段获得这些信息。.net框架包含大量的属性,他们是在bcl中定义的,这包括用于文档,多线程,web服务等方面的类,除了 可以使用或扩展这些类外,你还可以创建自己的自定义属性。.net框架中已有的一些属性:clscompliant, conditional, obsolete,webmethod,21.2.2使用属性。基于webmethod属性,属性放在要关联的代码运算的前面,属性使用方括号括起来指额定示的。通常将属性与代码元素关联起来的方式于此相同21.2.3使用多个属性,可以将多个属性于同一个代码元素关联起来,方法是分别列出每一个属性虽然这里每个属性各占一行,但也可以将他们一方在同一行中,另外还可以将属性组合为单个声明,在这种情况下,需要用逗号将各个属性分隔。21.2.4使用带参数的属性,属性可以带参数,在属性中包含参数皆在提供 额外的信息。用于属性的参数有两类:位置参数和命名参数,其中位置参数也被称为非命名参数,可以在单个属性中同时定义位置参数和名称参数。因此,正如你看到的,要包含位置参数,则必须首先声明他们,因为其位置至关重要21.2.5定义自己的属性。属性看起来与程序中的C# 有所不同,实际上他们没有什么不同。属性只不过是一种有特殊用途的类。属性是类,因此你可以定义并使用自己的属性,属性是从.net框架中已有的类system.atlribute派生而来的,可以像派生其他类那样派生属性21.2.5.1限定属性,可以对属性进行限制,你也可以创建这样的属性,即他只能关联到特定类型的代码或特定的目标21.2.5.2定义属性类,定义属性类的方法与常规类类是属性只不过是另一种类——属性类而已21.2.5.3使用自定义属性定义属性后,需要使用它,在程序中使用codestateusattribute属性的方法与前面介绍的相同,你需要包含位置参数,还可以包含名称参数,21.2.6访问被关联的属性信息,如果不能在运行阶段访问属性信息,则使用 属性将豪无意义可以通过反射来访问属性信息21.2.7将各部分组合起来。21.2.8但次使用的属性和多次使用的属性

3t

0 0
原创粉丝点击