版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
属性、索引器、委托、事件第6章回顾可以将同一命名空间内的类部署到不同的程序集中,并将不同命名空间内的类部署到一个程序集中。程序集有两种类型:私有程序集和共享程序集。try和catch块帮助处理引发的异常。是否执行Finally块中的语句与控制流无2目标解释属性实现索引器实现委托定义和引发事件3类中的字段示例usingSystem;classStudent{publicstringsName;publicstringsId;}classTest{publicstaticvoidMain(){StudentstudOne=newStudent();Console.WriteLine("输入学员姓名");studOne.sName=Console.ReadLine();Console.WriteLine("\n输入学员ID");studOne.sId=Console.ReadLine();Console.WriteLine("学员姓名是{0},学员ID是{1}",studOne.sName,studOne.sId);}}本示例公开了类中的数据成员,不是好的编程方式4C#中的属性4-1usingSystem;publicclassStudent{publicstringsName; //字段privatestringinternal_sId;//字段
publicstringsId //属性{get{returninternal_sId;}
set{internal_sId=value;}}}classTest{staticvoidMain(){Studentone=newStudent();one.sName="Sam";
one.sId="St423";Console.WriteLine("学员姓名是{0},他的ID是{1}",one.sName,one.sId);}}本示例我们引用了属性概念5C#中的属性4-3属性的类型-读/写属性-只读属性-只写属性7C#中的属性4-4属性是逻辑字段属性是字段的扩展与字段不同,属性不直接对应于存储位置与方法不同,属性不使用圆括号8定义索引器的规则必须指定至少一个索引器参数应当为索引器参数赋值10索引器与数组的比较4-1索引器不指向内存位置索引器可以有非整数的下标(索引)可以重载索引器11索引器与数组的比较4-212索引器与数组的比较4-3usingSystem.Collections;classStrIndex{publicHashtablestudentList=newHashtable();publicintthis[stringname]{get{return(int)studentList[name];}set{studentList[name]=value;}}}classTest{staticvoidMain(){StrIndexobjIndex=newStrIndex();objIndex["Sam"]=232676;objIndex["Tom"]=455464;System.Console.WriteLine("Sam的电话号码是{0},Tom的电话号码是{1}",objIndex["Sam"],objIndex["Tom"]);}}索引器可以有非整数下标而数组不能有
13索引器与数组的比较4-4usingSystem.Collections;classIndexerExample{publicstring[]stringList=newstring[10];publicstringthis[intindex]{get{returnstringList[index];}
set{stringList[index]=value.ToString();}}publicHashtablestudentList=newHashtable();publicintthis[stringnumber]{get{return(int)studentList[number];}set{studentList[number]=value;}}}classTest{staticvoidMain(){IndexerExampleindexTest=newIndexerExample();indexTest.stringList[1]="Sam";indexTest[2]="Tom";indexTest["Sam"]=232;indexTest["Tom"]=455;}}一个类可以有多个索引器但必须通过指定不同的索引类型重载索引器
14在索引器中使用多个参数可以指定多个索引器参数15定义委托
publicdelegatevoidDelegateName();17实例化委托classTestDelegates{publicdelegateintCallFun(inta,intb);classMathsOperations{publicintMulFun(inta,intb){returna*b;}publicintDivFun(inta,intb){returna/b;}}
classTest{staticvoidMain(){CallFunDelegateObj;MathsOperationsmath=newMathsOperations();
DelegateObj=newCallFun(math.MulFun);}}}实例化委托时,必须调用委托的构造函数,并将与委托相关联的方法及其对象名作为参数传给它。
18事件标识用户的某项操作,并将此操作通知给其它对象。把事件信息通知其他对象的对象称为发布方注册到事件的对象称为订户步骤定义事件(基于委托)给对象预订该事件(与事件处理方法进行关联)通知事件的订户(引发事件)20定义事件定义委托基于该委托定义事件21预订事件(与事件处理方法的关联)能否给对象预订事件取决于事件是否存在。如果事件存在,那么要给对象预订事件,只须添加一个当事件被引发时将调用方法的委托即可。预定事件也即事件与委托的关联,最终实现事件与相应的事件处理方法进行关联。22通知预
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《国际货运代理》题集
- 《规范汉字书写传承中华文化之美》班会教案3篇
- 3.4.1 二次函数y=ax2+k与y=a(x-h)2的图象与性质 同步练习
- 【人教】期末模拟卷01【九年级上下册】
- 专项24-弧、弦、角、距的关系-重难点题型
- 特殊作业票管理制度
- 语法专题十六 主谓一致【考点精讲精练】-2023年中考语法一点通(学生版)
- 青花瓷的教案8篇
- 新生军训心得体会
- 暑假自我总结
- 全融资租赁三方合同(中英文对照)
- 监理检测与试验仪器设备一览表实用文档
- 第一单元(知识清单) 【 新教材精讲精研精思 】 七年级语文上册 (部编版)
- 部编版五年级上册第二单元《习作“漫画”老师》一等奖创新教案
- 小学生急救小常识课件
- TCPQS XF003-2023 灭火器产品维修、更换及售后服务
- 医院影像科医疗安全不良事件报告制度
- 内蒙古包头蒙中2022学年八年级上学期期中考试生物模拟试题
- 五星级酒店市场营销部绩效工资方案
- 2015-2022年常州纺织服装职业技术学院高职单招语文/数学/英语笔试参考题库含答案解析
- 产品定价管理制度:内部价格、价格策略制定、定价调价管理制度
评论
0/150
提交评论