资源描述
Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,巨匠,IT,培训,*,Click to edit Master title style,C#,运算符的重载,运算符重载,将自定义的类型赋予运算符号,使得对象和对象可以进行运算,称为运算符重载。,如果有一自定义的类型命名为二维座标,若重载,+,运算符,则(,3,5,),+,(,4,-3,),=,(,7,2,),巨匠,IT,培训,c#,里的运算符重载是个不常出现的应用,同时也是个好玩的东西。,operator,关键字用于在类或结构声明中声明运算符。:,巨匠,IT,培训,运算符重载,/,重载一元运算符原型声明,public static,return-type,operator,op,(,type,operand,),/statement;,/,重载二元运算符原型声明,public static,return-type,operator,op,(,type,operand1,type operand2,),/statement;,巨匠,IT,培训,class A,int x;,public int X,get return x;,set x=value;,/,重载加操作符,public static A operator+(A a,A b),A c=new A();,c.x=a.x+b.x;,return c;,/,重载减操作符,public static A operator-(A a,A b),A c=new A();,c.x=a.x-b.x;,return c;,class B,static void Main(),A a=new A();,a.X=3;,A b=new A();,b.X=5;,/,使用加法,A c=a+b;,Console.WriteLine(c.X);,/,使用减法,c=a-b;,Console.WriteLine(c.X);,巨匠,IT,培训,类,别,运,算,符,限,制,算术二元运算符,+,*,/,%,无,算术一元运算符,+,+,无,按位二元运算符,&,|,无,按位一元运算符,!,true,false,true,和,false,运算符必须成对重载,比较运算符,=,!=,=,必须成对重载,赋值运算符,+=,=,*=,/=,=,(Coordinate op1,Coordinate op2),if(op1.x op2.x&op1.y op2.y),return true;,else,return false;,public static bool,operator,(Coordinate op1,Coordinate op2),if(op1.x op2.x&op1.y c8;,bool b2=c6=c2;,/,巨匠,IT,培训,using System;,class Sample5_14,public static void Main(),/,if(c4),Console.WriteLine(c4,至少有一个座标不为零。,);,else,Console.WriteLine(c4,所有座标都为零。,);,if(!c5),Console.WriteLine(c5,所有座标都为零。,);,else,Console.WriteLine(c5,至少有一个座标不为零。,);,if(c3&c4),Console.WriteLine(c3,和,c4,两个座标都不为零。,);,if(c7|c0),Console.WriteLine(c7,和,c1,至少有一个座标不为零。,);,巨匠,IT,培训,重载一元运算符,-,续,巨匠,IT,培训,巨匠,IT,培训,
展开阅读全文