网站导航网学 原创论文 原创专题 网站设计 最新系统 原创论文 论文降重 发表论文 论文发表 UI设计定制 论文答辩PPT格式排版 期刊发表 论文专题
返回网学首页
网学原创论文
最新论文 推荐专题 热门论文 论文专题
当前位置: 网学 > 设计资源 > .Net编程 > 正文

C#运算符重载

论文降重修改服务、格式排版等 获取论文 论文降重及排版 论文发表 相关服务

运算符重载的关键是在类实例上不能总是调用方法或属性,有时还需要做一些其他的工作,例如对数值进行相加、相乘或逻辑操作,如比较对象等。
在许多情况下,重载运算符允许生成可读性更高、更直观的代码。

  1. public class OperOverLoad 
  2.  { 
  3.   
  4.  /// <summary> 
  5.   /// 测试方法 
  6.   /// </summary> 
  7.    public void TestMethod() 
  8.  { 
  9.   MyPoint my = new MyPoint(31, 5); 
  10.   MyPoint you = new MyPoint(3, 5); 
  11.   
  12.   MyPoint third = my + you; 
  13.   
  14.   Console.WriteLine(third.X); 
  15.   
  16.   
  17.   Console.WriteLine(my == you); 
  18.   
  19.   Console.WriteLine(my.Equals(you)); 
  20.   } 
  21.   
  22.   } 
  23.   public class MyPoint 
  24.   { 
  25.   public MyPoint() 
  26.   { } 
  27.   
  28.   public MyPoint(int x, int y) 
  29.  { 
  30.   this.X = x; 
  31.   this.Y = y; 
  32.   } 
  33.   
  34.   public int X 
  35.   { 
  36.   set
  37.   get
  38.   } 
  39.   public int Y 
  40.  { 
  41.   set
  42.   get
  43.   } 
  44.   
  45.   /**//// <summary> 
  46.   /// 符重载 格式 public static <返回对象类型> operator <操作符> (参数列表) 
  47.   /// </summary> 
  48.   /// <param name="me"></param> 
  49.   /// <param name="you"></param> 
  50.   /// <returns></returns> 
  51.    public static MyPoint operator +(MyPoint me,MyPoint you) 
  52.   { 
  53.   MyPoint newPoint = new MyPoint(); 
  54.   newPoint.X = me.X + you.X; 
  55.   newPoint.Y = me.Y + you.Y; 
  56.   return newPoint; 
  57.   
  58.   /**////快速写法 
  59.   //return new MyPoint(me.X + you.X, you.Y + you.Y); 
  60.   } 
  61.   
  62.   
  63.   
  64.   public static bool operator ==(MyPoint lPoint,MyPoint rPoint ) 
  65.  { 
  66.   if ((object)lPoint == null || (object)rPoint == null
  67.  { 
  68.   return false
  69.   } 
  70.   
  71.   return rPoint.X == lPoint.X && rPoint.Y == lPoint.Y; 
  72.   } 
  73.   
  74.   public static bool operator !=(MyPoint lPoint, MyPoint rPoint) 
  75.  { 
  76.   if ((object)lPoint == null || (object)rPoint == null
  77.  { 
  78.   return false
  79.   } 
  80.   
  81.   return lPoint.X != rPoint.X || lPoint.Y != rPoint.Y; 
  82.   } 
  83.   
  84.   
  85.  public override int GetHashCode() 
  86.  { 
  87.   return this.ToString().GetHashCode(); 
  88.   } 
  89.   
  90.   public override bool Equals(object obj) 
  91.  { 
  92.   if(obj==null
  93.   return false
  94.   
  95.   MyPoint p = obj as MyPoint; 
  96.   
  97.   if (p == null
  98.   return false
  99.   
  100.   return this.X.Equals(p.X) && this.Y.Equals(p.Y); 
  101.   
  102.   // return this.X == p; 
  103.   
  104.   } 
设为首页 | 加入收藏 | 网学首页 | 原创论文 | 计算机原创
版权所有 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
Copyright 2008-2020 myeducs.Cn www.myeducs.Cn All Rights Reserved 湘ICP备09003080号 常年法律顾问:王律师