解决方案 »

  1.   

    重载操作符
    重写=的方法
    在方法里new一个新对象然后return
      

  2.   

    既然是不可变类型(immutable),指向同一个内存实例有什么不好的?immutable的好处就是,你既不用担心其它人的引用不小心改你的数据,又不用每个人用一个拷贝。
      

  3.   

    你的印象是错误的。
    bool eq = object.ReferenceEquals(abc, def);  // true
      

  4.   

    你的印象是错误的。
    bool eq = object.ReferenceEquals(abc, def);  // true谢谢,Forty2,我的确搞错了,委托只是简单的immutable object而已,赋值的确不会生产新的object,而是修改的时候生产新的object。Delegate d1 = xxxxx;
    Delegate d2 = d1;
    Delegate d3 = xxxxx;bool eq = object.ReferenceEquals(d1, d2);  // true
    eq = object.ReferenceEquals(d1, d3);  // falsed2 += yyyyy; //immutable object的特点,只要修改了就生产新的objecteq = object.ReferenceEquals(d1, d2);  // false;上面说明委托只是简单的immutable object。我还把委托和String这种immutable object搞错了,因为String除了是immutable object外,它还有字符串常量池(http://blog.csdn.net/renfufei/article/details/16808775)的概念,我以为委托也有类似机制,结果是我多想了。