標籤:
一.建立一個表單
二.建立一個類Operator裡面有兩個運算元和一個方法
public abstract class Operator { public abstract int Calc(); //計算數 public int NumLeft { get; set; } public int NumRight { get; set; } }
三.建立一個Add類
public class Add:Operator { public override int Calc() { return this.NumLeft + this.NumRight; } }
四.建立一個Sub類
public class Sub:Operator { public override int Calc() { return this.NumLeft - this.NumRight; } }
五.建立一個Mul類
public class Mul:Operator { public override int Calc() { return this.NumLeft * this.NumRight; } }
六.建立一個div類
public class Div:Operator { public override int Calc() { int result = 0; if (NumLeft == 0) { throw new Exception("除數不能為0"); } else { result=this.NumLeft / this.NumRight; } return result; } }
七. 建立一個類似於工廠的類
public class Factory { //靜態 傳回值類型 參數 public static Operator cu(string Type) { Operator oper=null; switch (Type){ case"+": oper=new Add(); break; case"-": oper=new Sub(); break; case"*": oper=new Mul(); break; case"/": oper=new Div(); break;} return oper; } }
八.在主表單的結果按鈕中添加
private void btOk_Click(object sender, EventArgs e) { int num1=Convert.ToInt32( txtLfet.Text); string oper = cb.Text; int num2 = Convert.ToInt32(txtRight.Text); //04.調用工廠的靜態方法,傳入類型 ,擷取傳回值 Operator part = Factory.cu(oper); part.NumLeft = num1; part.NumRight = num2; int result = 0; //05.調用對應父類變數的Calc()完成計算,接收傳回值 try { result = part.Calc(); } catch (Exception ex) { MessageBox.Show(ex.Message); } //06.在Label中顯示 label1.Text = result.ToString(); }
多態電腦程式