国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > 綜合 > 正文

C#中多重委托(MulticastDelegate)的例子

2024-07-21 02:26:34
字體:
來源:轉載
供稿:網友


using system;

namespace sei.dl88250.sourcecodes.csharp
{
 public delegate void calculation(decimal val1,
                                  decimal val2,
             ref decimal result);
 class multicastdelegate
 {
  calculation myadd;
  calculation mysub;
  calculation mymul;

  public void add(decimal add1, decimal add2, ref decimal result)
  {
   result = add1 + add2;
   console.writeline("{0} + {1} = {2}",
       add1, add2, result);
  }

  public void sub(decimal sub1, decimal sub2, ref decimal result)
  {
   result = sub1 - sub2;
   console.writeline("{0} - {1} = {2}",
       sub1, sub2, result);
  }

  public void mul(decimal mul1, decimal mul2, ref decimal result)
  {
   result = mul1 * mul2;
   console.writeline("{0} * {1} = {2}",
       mul1, mul2, result);
  }

  static void main(string[] args)
  {
   decimal result = 0.0m;
   multicastdelegate mcd = new multicastdelegate();

   mcd.myadd = new calculation(mcd.add);
   mcd.mysub = new calculation(mcd.sub);
   mcd.mymul = new calculation(mcd.mul);

   console.foregroundcolor = consolecolor.darkred;
   console.writeline("use single delegate: ");
   console.foregroundcolor = consolecolor.darkgray;
   mcd.myadd(7.43m, 5.19m, ref result);
   mcd.mysub(7.43m, 5.19m, ref result);
   mcd.mymul(7.43m, 5.19m, ref result);

   console.foregroundcolor = consolecolor.darkred;
   console.writeline("use multicast delegate: ");
   console.foregroundcolor = consolecolor.darkgray;
   calculation multicalc = mcd.myadd + mcd.mysub + mcd.mymul;
   multicalc(7.43m, 5.19m, ref result);

   console.foregroundcolor = consolecolor.darkred;
   console.writeline("remove the sub method delegate: ");
   console.foregroundcolor = consolecolor.darkgray;
   multicalc -= mcd.mysub;
   multicalc(7.43m, 5.19m, ref result);

   // restore delegate sub method
   multicalc += mcd.mysub;

   console.foregroundcolor = consolecolor.darkred;
   console.writeline("delegate contents: ");
   console.foregroundcolor = consolecolor.darkgray;
   delegate[] delegatearray = multicalc.getinvocationlist();
   foreach (delegate delgt in delegatearray)
   {
    console.writeline(delgt.method.getbasedefinition());
   }
   console.foregroundcolor = consolecolor.white;
  }
 }
}
 

 

 



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 汝城县| 荥经县| 左权县| 耿马| 平凉市| 宜阳县| 菏泽市| 中宁县| 林芝县| 玛沁县| 舞阳县| 三台县| 梅河口市| 古蔺县| 彰化县| 卢氏县| 嘉善县| 汉阴县| 宜丰县| 班玛县| 和平区| 罗江县| 怀柔区| 中江县| 仙游县| 贺兰县| 密山市| 尚义县| 达尔| 竹山县| 鹰潭市| 剑川县| 普兰店市| 宁城县| 澜沧| 民和| 自治县| 抚州市| 伊春市| 安多县| 项城市|