範例一:
運行結果:
長等於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;
}
}
}