C#在別處寫出新的cs及調用該cs的方法
本來不太想寫,因為簡單,但說明起來很麻煩
目的:實現使用者可以輸入長寬,算回周長及面績、體績
步驟:
一、在專案裡新增一個叫Shape的資料夾
二、在該資料夾中新增2個檔案Rect.cs、Box.cs
三、先寫Rect
四、再寫Box繼承Rect
五、如此一來,就可以在主程式中呼叫及調用
Rect.cs
Box.cs
主程式:
目的:實現使用者可以輸入長寬,算回周長及面績、體績
步驟:
一、在專案裡新增一個叫Shape的資料夾
二、在該資料夾中新增2個檔案Rect.cs、Box.cs
三、先寫Rect
四、再寫Box繼承Rect
五、如此一來,就可以在主程式中呼叫及調用
Rect.cs
class Rect
{
private int length;
private int width;
//私有的長跟寬,誰都不能調用
public Rect()
{
//建構子,給預設值
length = 10;
width = 8;
}
public Rect(int length,int width)
{
//這個是Overload,與建構子同名,但有帶參數
//這個參數會寫回private length 及 width
this.length = length;
this.width = width;
}
public int Area()
{
//當有其他人呼叫 Area(),回傳面績
return length * width;
}
public int Perimeter()
{
//當有其他人呼叫 Perimeter(),回傳周長
return (length + width) * 2;
}
public int Length
{
//開一個方法讓別的人可以取得長
get { return this.length; }
//若要讓別人可以取得寬,要有個set 對應value
//set { this.length = value; }
}
public int Width
{
get { return this.width; }
//set { this.length = value; }
}
//Override Object類別中的 ToString()方法
public String ToString()
{
String result = "";
result += String.Format("長:{0}\r\n", this.length);
result += String.Format("寬:{0}\r\n", this.width);
result += String.Format("周長:{0}\r\n", this.Perimeter());
result += String.Format("面積:{0}\r\n", this.Area());
return result;
}
}
Box.cs
class Box : Rect
{
//Box 繼承 Rect
private int height;
public int Height
{
get { return this.height; }
}
public Box()
{
//建構子,預設的height為6
this.height = 6;
}
public Box(int length, int width, int height) : base(length, width)
{
//overload,其中的length及width 繼承父親的 base(length, width)
this.height = height;
}
public int Volume()
{
//求出體績回傳
return this.Area() * this.height;
}
//Override Rect的Area()
public int Area()
{
//總面績回傳
return base.Area() * 2 + this.Length * this.height * 2 +
this.Width * this.height * 2;
}
public new int Perimeter()
{
return base.Perimeter() * 2 + this.height * 4;
}
public String ToString()
{
String result = base.ToString();
result += String.Format("高:{0}\r\n", this.height);
result += String.Format("體積:{0}\r\n", this.Volume());
return result;
}
}
主程式:
private void button3_Click(object sender, EventArgs e)
{
String result = "";
Rect r1 = new Rect();
//調用Rect的建構字
result += r1.ToString() + "\r\n";
Rect r2 = new Rect(50,30);
//調用Rect的建構字,但給予長、寬
result += r2.ToString() + "\r\n";
Shape.Box b1 = new Shape.Box();
result += b1.ToString() + "\r\n";
Shape.Box b2 = new Shape.Box(50, 30, 20);
//調用的Shape.Box建構字,但給予長、寬、高
result += b2.ToString() + "\r\n";
textBox1.Text = result;
//顯示所有結果
}

留言
張貼留言