资源描述:
《C#高级编程学习笔记和代码》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、1.索引器索引器就是一类特殊的属性,通过它们你就可以像引用数组一样访问对象元素的功能。显然,这一功能在创建集合类的场合特别有用,而在其他某些情况下,比如处理大型文件或者抽象某些有限资源等,能让类具有类似数组的行为当然也是非常有用的。本文就会引领你设置类来采用索引器。索引器的定义如下所示:[修饰符]数据类型this[intindex]{访问函数体代码}自己写的一个类的简单的索引:namespaceInterfaceTest{classindexx{publicstringnn="";publicintdd=0;publicindexx(stringname,inti
2、d){nn=name;dd=id;}}classsindex{privateindexx[]Try=newindexx[10];publicindexxthis[intindex]{get{if(index>=0
3、
4、index<10)returnTry[index];elsereturnnull;}set{if(index>=0
5、
6、index<10)Try[index]=value;}}}publicclassapp{publicstaticvoidMain(){sindexsin=newsindex();sin[1]=newindexx("qym",4312);
7、Console.WriteLine("nameis{0}andidis{1}",sin[1].nn,sin[1].dd);Console.ReadLine();}}}2.重载运算符重载运算符的格式为:Publicstatic返回类型operator运算符(参数表){}示例代码:namespaceInterfaceTest{publicclassReload{publicintx,y;publicReload(){x=y=0;}publicReload(inti,intj){this.x=i;this.y=j;}publicstaticReloadoperator+
8、(Reloadrr,Reloaddd){Reloadnn=newReload();nn.x=rr.x+dd.x;nn.y=rr.y+dd.y;returnnn;}publicstaticReloadoperator+(Reloadrr,intd){Reloadnn=newReload();nn.x=rr.x+d;nn.y=rr.y+d;returnnn;}}publicclassRun{publicstaticvoidMain(){Reloadxx=newReload(23,43);Reloadyy=newReload();intg=10;//Reloaduu=n
9、ewReload();//Reloadii=newReload();Reloaduu=xx+yy;Reloadii=xx+g;Console.WriteLine("xx+yy'sx={0}andy={1}",uu.x,uu.y);Console.WriteLine("xx+g'sx={0}andy={1}",ii.x,ii.y);Console.ReadLine();}}}3.多态性C#的多态性是指当对不同类的对象执行相同的方法时,系统能根据不同类的对象正确辨别调用各对象所属类的相应方法,从而产生不同的结果。多态性是通过”虚方法重载”来实现在程序中调用相应对象所属
10、类中的方法,而不是调用基类的方法。虚方法重载就是将基类的某个方法在其派生类中重新定义,而方法名和方法的参数都不改变。虚方法即加修饰符virtual,派生类中用override进行覆盖。非虚方法真正执行的功能是编译时的对象所属的类中的方法;虚方法面向运行时它实际所属的类的对象,也即虚方法真正执行的功能是运行时的实际对象所属的类中的方法。New关键字用于派生类对象希望调用派生类中定义的与其基类同名,但作用效果不同的方法;虚方法用于自动实现派生类对象调用自己类中的与基类同名、但作用效果不同的方法。示例代码:namespaceInterfaceTest{classVirt
11、ualTest{}publicclassEmployeee{publicstringname;publiclongidcard;publicdoublesalary;publicdoubleincrease;publicEmployeee(stringn,longi,doublem){name=n;idcard=i;salary=m;}publicvoidPrint(){Console.WriteLine("姓名:{0}",name);Console.WriteLine("身份证号:{0}",idcard);Console.WriteLine("基本工资:{0}"
12、,sala