========================================运算符重载

-------------------------------------------------------------------------Vector.cs

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication4{publicstructVector//结构和类是相似的{publicintx,y,z;publicVector(intx,inty,intz)//构造函数{this.x=x;this.y=y;this.z=z;}publicVector(Vectorv)//构造函数{this.x=v.x;this.y=v.y;this.z=v.z;}publicoverridestringToString()//重载tostring方法{returnstring.Format("x:{0};y:{1};z:{2}",x,y,z);}//重载运算符//第一个参数是运算符左边的,第二个参数是运算符右边的//+-*/是一样的publicstaticVectoroperator*(Vectorlhs,Vectorrhs){Vectorv=newVector(lhs);v.x*=rhs.x;v.y*=rhs.y;v.z*=rhs.z;returnv;}}}

-------------------------------------------------------------------------主程序

Vectorv1=newVector(1,2,3);Vectorv2=newVector(3,2,1);Console.WriteLine((v1*v2).ToString());//输出x:3;y:4;z:3Console.ReadKey();

========================================比较运算符重载

-------------------------------------------------------------------------Vector.cs

usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespaceConsoleApplication4{publicstructVector//结构和类是相似的{publicintx,y,z;publicVector(intx,inty,intz)//构造函数{this.x=x;this.y=y;this.z=z;}publicVector(Vectorv)//构造函数{this.x=v.x;this.y=v.y;this.z=v.z;}publicoverridestringToString()//重载tostring方法{returnstring.Format("x:{0};y:{1};z:{2}",x,y,z);}//重载比较运算符//==与!=需成对出现//>与<需成对出现//>=与<=需成对出现publicstaticbooloperator==(Vectorlhs,Vectorrhs){Vectorv=newVector(lhs);if(v.x==rhs.x&&v.y==rhs.y&&v.z==rhs.z){returntrue;}else{returnfalse;}}//重载比较运算符publicstaticbooloperator!=(Vectorlhs,Vectorrhs){return!(lhs==rhs);}}}

-------------------------------------------------------------------------主程序

Vectorv1=newVector(1,2,3);Vectorv2=newVector(1,2,3);Console.WriteLine(v1==v2);//trueConsole.ReadKey();