C#-運算子的重載範例

來源:互聯網
上載者:User
   

範例一:

運行結果:
長等於20,寬等於10的長方形的面積等於:-->200
運用重載關係運算子++將長方形面積加10後的長方形面積等於-->210
運用重載關係運算子--將長方形面積減10後的長方形面積等於-->200
Press any key to continue
 

using System;

namespace ConsoleApplication1
{
 /// <summary>
 /// Class1 的摘要說明。
 /// </summary>
 class Class1
 {
  /// <summary>
  /// 應用程式的主進入點。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   Rectangle myrectangle=new Rectangle();
   myrectangle.getArea(10,20);
   Console.WriteLine("長等於20,寬等於10的長方形的面積等於:-->"+myrectangle.Area);
   Console.Write("運用重載關係運算子++將長方形面積加10後的長方形面積等於-->");
   myrectangle++;
   Console.WriteLine(myrectangle.Area);

   Console.Write("運用重載關係運算子--將長方形面積減10後的長方形面積等於-->");
   myrectangle--;
   Console.WriteLine(myrectangle.Area);
   Console.ReadLine();
  }
 }
 class Rectangle
 {
  int width;
  int length;
  public int Area;
  public void getArea(int w,int l)
  {
   width=w;
   length=l;
   Area=width*length;
  }
  public void InArea()
  {
   Area+=10;

  }
  public void Darea(){
     Area-=10;
  }
  public static Rectangle operator ++(Rectangle rectangle)
  {
   Rectangle myrectangle =new Rectangle();
   myrectangle=rectangle;
   myrectangle.InArea();
   return myrectangle;
  }
  public static Rectangle operator --(Rectangle rectangle){
      Rectangle rect=new Rectangle();
   rect=rectangle;
   rect.Darea();
   return rect;
  }
 }

}

 

範例二:
+和-運算子的重載
代碼如下
運行結果
長等於20,寬等於10的長方形面積等於-->200
長等於10,寬等於5的長方形面積等於-->50
_______________________________________________
運用重載運算子+將兩個長方形面積相加的結果為-->250
運用重載運算子-將兩個長方形面積相減的結果為-->150
Press any key to continue

using System;

namespace ConsoleApplication1
{
 /// <summary>
 /// Class1 的摘要說明。
 /// </summary>
 class Class1
 {
  /// <summary>
  /// 應用程式的主進入點。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
            Rectangle rect1=new Rectangle();
   Rectangle rect2=new Rectangle();
   rect1.getArea(10,20);
   rect2.getArea(5,10);
   Console.WriteLine("長等於20,寬等於10的長方形面積等於-->"+rect1.area);
   Console.WriteLine("長等於10,寬等於5的長方形面積等於-->"+rect2.area);
            Console.WriteLine("_______________________________________________");
   Rectangle sum=new Rectangle();
   sum.area=rect1.area+rect2.area;
   Console.WriteLine("運用重載運算子+將兩個長方形面積相加的結果為-->"+sum.area);

   Rectangle sub=new Rectangle();
   sub.area=rect1.area-rect2.area;
   Console.WriteLine("運用重載運算子-將兩個長方形面積相減的結果為-->"+sub.area);
   Console.ReadLine();
  }
 }
 class Rectangle{
     int width;
        int length;
  public int area;
  public void getArea(int w,int l){
      width=w;
   length=l;
   area=width*length;
  }
  public static Rectangle operator +(Rectangle rect1,Rectangle rect2){
      Rectangle sum=new Rectangle();
   sum.area=rect1.area+rect2.area;
   return sum;
  }
  public static Rectangle operator-(Rectangle rect1,Rectangle rect2){
      Rectangle sub=new Rectangle();
   sub.area=rect1.area-rect2.area;
   return sub;

  }
 }
}

 

範例四
  處理不同類型運算
 代碼如下
運行結果
班級的人數為:--> 20
加上10個學生班級的人數為-->30
減去10個學生班級的人數為-->10
Press any key to continue 

using System;

namespace ConsoleApplication1
{
 /// <summary>
 /// Class1 的摘要說明。
 /// </summary>
 class Class1
 {
  /// <summary>
  /// 應用程式的主進入點。
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   int students=10;

   Student stu1=new Student();
   Student sum=new Student();
   Student sub=new Student();

   Console.WriteLine("班級的人數為:--> {0}",stu1.students);

   sum=sum+students;
   sub=sub-students;

   Console.WriteLine("加上10個學生班級的人數為-->{0}",sum.students);
   Console.WriteLine("減去10個學生班級的人數為-->{0}",sub.students);
   Console.ReadLine();
  }
 }
 class Student{
   public int students;
  public Student(){
      students=20;
  }
  public static Student operator +(Student s,int num){
      int student=s.students+num;

   Student stu1=new Student();
   stu1.students=student;
   return stu1;
  }
  public static Student operator -(Student s,int num){
      int student=s.students-num;

   Student stu1=new Student();
   stu1.students=student;
   return stu1;
  }
 }

}

 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.