预览加载中,请您耐心等待几秒...
1/2
2/2

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

很多语言都允许程序员使用运算符重载,尽管从编程的角度看,这没有其必要性,但是对于代码来讲可以提高它的可读性,带来许多方便之处。最简单的例子就是,我们用String类的时候,用“+”运算符直接实现字符串的连接,很方便很直观。虽然,Java不允许重载运算符,但是在它在类库级别上也重载了String类的“+”运算符。C#和C++一样,提供了运算符重载机制。但是,它的要求要严格一些,这里提一下C#中自增运算符“++”的重载使用。 在C++中,要体现前置++运算,总是要给其添加一个int类型的参数,尽管我们用不上它。在C#中我们只需也只可以写一种形式,看例子: namespacePolymorphy { internalclassProgram { staticvoidMain(string[]args) { ATypeinstance=newAType(100); Console.WriteLine(instance++.data); Console.WriteLine((++instance).data); Console.WriteLine(instance.data); Console.ReadKey(); } }; classAType { publicintdata; publicAType(intpara) { this.data=para; } publicstaticATypeoperator++(ATypepara) { Console.WriteLine("执行重载运算符++"); returnnewAType(1+para.data); } }; } 执行结果: 执行重载运算符++" 100 执行重载运算符++" 102 102 分析:不管前置后置运算,程序总是执行重载运算符对应的函数,但是,后置执行以后把对象原来的值以临时变量的形式反馈回来。而前置,则直接执行函数即可。 说明:C#对++运算符重载的要求: 参数必须是一个,而且只能是包含它的类型,也就是它的所在类类型。 返回值,必须是所在类类型或其派生类。 所有重载的运算符必须是public和static的,这是编译时要求。