Exemple #1
0
        //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);
        }
Exemple #2
0
        //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("结果:非法数据");
     }
 }
Exemple #4
0
        //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();
 }
Exemple #11
0
        private void CalculateCallback(IAsyncResult ar)
        {
            CalculateDelegate dlg = (CalculateDelegate)ar.AsyncState;

            dlg.EndInvoke(ar);
        }
Exemple #12
0
 public IAsyncResult BeginCalculate(int digits, AsyncCallback callback)
 {
     dlg = new CalculateDelegate(this.Calculate);
     return(dlg.BeginInvoke(digits, callback, this));
 }
Exemple #13
0
 public static double Calculate(double a, double b, CalculateDelegate cd)
 {
     return(cd.Invoke(a, b));
 }
Exemple #14
0
    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);
    }