//Main_12_2_5 public static void Main_12_2_5() { //进行委托绑定 myDelegate = new CalculateDelegate(Add); //回调Add方法 //myDelegate(100, 200); myDelegate.Invoke(100, 200); myDelegate = new CalculateDelegate(Subtract); //myDelegate(100, 200); myDelegate.Invoke(100, 200); }
//Main_12_2_5 public static void Main_12_2_5() { //����ί�а� myDelegate = new CalculateDelegate(Add); //�ص�Add���� //myDelegate(100, 200); myDelegate.Invoke(100, 200); myDelegate = new CalculateDelegate(Subtract); //myDelegate(100, 200); myDelegate.Invoke(100, 200); }
//完成计算工作 void DoCalculate(CalculateDelegate calmethod) { double x, y; try { x = Convert.ToDouble(txtNumber1.Text); y = Convert.ToDouble(txtNumber2.Text); lblInfo.Text = String.Format("结果:{0}", calmethod(x, y)); } catch (Exception e) { lblInfo.Text = String.Format("结果:非法数据"); } }
//Main_12_2_8 public static void Main_12_2_8() { myDelegate = new CalculateDelegate(Add); myDelegate += new CalculateDelegate(Subtract); myDelegate += new CalculateDelegate(Multiply); myDelegate(100, 200); myDelegate -= new CalculateDelegate(Add); myDelegate(100, 200); myDelegate = (CalculateDelegate)Delegate.Combine(new CalculateDelegate(Add), new CalculateDelegate(Subtract), new CalculateDelegate(Multiply)); myDelegate(100, 200); myDelegate = (CalculateDelegate)Delegate.Remove(myDelegate, new CalculateDelegate(Add)); myDelegate(100, 200); }
private void rdoSubtract_CheckedChanged(object sender, EventArgs e) { curOpt = this.Subtract ; //选择函数 DoCalculate(curOpt); //调用函数 }
private void rdoMultiply_CheckedChanged(object sender, EventArgs e) { curOpt = this.Multiply ; DoCalculate(curOpt); }
private void rdoDivid_CheckedChanged(object sender, EventArgs e) { curOpt = this.Divid ; DoCalculate(curOpt); }
public frmDynamicInvokeMethod() { InitializeComponent(); curOpt = Add; }
public ExternFunction(FunctionPrototype proto, CalculateDelegate func) : base(proto, null) { function = func; count = 0; }
protected void btnCallDelegate_Click(object sender, EventArgs e) { CalculateDelegate cd = new CalculateDelegate(Calculate); int result = cd(10, 20); lblResult.Text = result.ToString(); }
private void CalculateCallback(IAsyncResult ar) { CalculateDelegate dlg = (CalculateDelegate)ar.AsyncState; dlg.EndInvoke(ar); }
public IAsyncResult BeginCalculate(int digits, AsyncCallback callback) { dlg = new CalculateDelegate(this.Calculate); return(dlg.BeginInvoke(digits, callback, this)); }
public static double Calculate(double a, double b, CalculateDelegate cd) { return(cd.Invoke(a, b)); }
public static CSLargeInt MultiUpB(CSLargeInt baseNum, int uAddLevel, CSLargeInt targetNB, CalculateDelegate func) { CSLargeInt nb = new CSLargeInt(baseNum); List <int> lstNbNum = nb.m_lstNum; for (int i = 0; i < uAddLevel; i++) { int uInc = (int)(func(i + 1) * THOUSAND); SAdd(targetNB.m_lstNum, lstNbNum); SMultiply(lstNbNum, uInc); lstNbNum.RemoveAt(0); } nb.Trim(); return(nb); }