C# 和.Net2.0实践平台、语言与框架中,
一个关于委托更改应用方法列表的例子,主要说明
+=添加的委托对象的多个方法引用,会被添加到目标委托对象引用列表的尾部,
-=删除的方法列表没有出现在目标委托对象引用列表就会操作失败
代码如下:
class Program
    {
        public delegate int Deleg(int i);
        static void Main(string[] args)
        {
            Article a = new Article(100);
            Article b = new Article(103);
            Article c = new Article(107);            Deleg deleg = a.IncPrice;
            Deleg deleg1 = b.IncPrice;
            deleg1 += c.IncPrice;
            deleg += deleg1;
            deleg(10);            Console.WriteLine("a:{0} b:{0} c:{0}",a.m_Price,b.m_Price,c.m_Price);            Deleg deleg2 = a.IncPrice;
            deleg2 += c.IncPrice;
            deleg -= deleg2;
            deleg(10);            Console.WriteLine("a:{0} b:{0} c:{0}",a.m_Price,b.m_Price,c.m_Price);            Deleg deleg3 = a.IncPrice;
            deleg3 += b.IncPrice;
            deleg -= deleg3;
            deleg(10);            Console.WriteLine("a:{0} b:{0} c:{0}",a.m_Price,b.m_Price,c.m_Price);
        }
    }    public class Article 
    {
        public int m_Price = 0;
        public Article(int price)
        {
            m_Price = price;
        }
        public int IncPrice(int i)
        {
            m_Price += i;
            return m_Price;
        }
    }
本机运行结果:
a:110 b:110 c:110
a:120 b:120 c:120
a:120 b:120 c:120书上给出的结果是:
a:110 b:113 c:117
a:120 b:123 c:127
a:120 b:123 c:137
书中的解释正确吗?为何时间运行结果不一样呢?求高手解释。