???????????????

???????????????????????????Щ???????????????????????????????????t???????????????????????????????÷??????????????????????÷????????????????????????????????????е???????????????

???????????

????1????????????????????????“??”???????????????????????????????????????????????????????????á????????????????????

????2?????????????????е??????????????“?????”?п?????????????ο? CLR var C#??

?????????????????

????1????????У????????????

//??????????
p = new Print(method1);//????????????????????е???????
p += method2;
p += method3;
p += method4;

????1.1 ??????????????????p????????p??????method1?????????????????_invocationList??null??

????1.2 “+=”??????????????????????????p???????_invocationList?а???????????method1??method2??method3??method4???????ж???

????2????????У????????????

/// <summary>
/// ???????????
/// </summary>
/// <returns></returns>
public string run()
{
      string ismove = "yes";
      p(ref ismove);
      return ismove;
}

????2.1 ??е??÷?????p(ref ismove)???????????????????????????????????????_invocationList???ε????????????ж??????????????????????????У?????????????????????ж?????????????????

????2.2 ??????????????κζ????????????????????????Ч????????α?????????????Ч?????????????????д????????????????????????????????????????У????????????????б??????????????????????????

????3????е????

p -= method3; //???????3
p -= method4;//???????4

????3.1 “-=”???????????????????????????????ж??????????????ж????????????????????????????????ж???????????δ???????÷?????????????????????????

???????????д????????á????????????????????????????????????????????????????????“2.2”??

?????????????1“??????????????????????????????????????????????”???????????method2?????????3??4??????????????ε?????е???????????????ε???run???Ч???????????????????μ?????????????????????????????á?????????????????????????????????????????????е??