你说的那个val修饰没有。不过你可以在Customer类中实现ICloneable接口的Clone 方法,以后用起来就方便了。
public class Customer:ICloneable
{}用的时候,
Customer c1 = new Customer();
c1.Name = "1";Customer c2 = c2.Clone();
这样就实现了值拷贝了。

解决方案 »

  1.   

    To TheAres(班门斧):
    你的这个思路看起来很好,但是我对接口不熟悉,一时间不知道中间的那段代码应该如何写,能说说具体实现吗?
    谢谢。
      

  2.   

    看我写的这个简单的例子:
    using System;
    class CloneObject
    {
    public static void Main()
    {
    A a1 = new A();
    a1.i = 2;
    A a2 = (A)a1.Clone(); Console.WriteLine( a2.i );
    Console.ReadLine(); }
    }class A:ICloneable
    {
    public int i; #region ICloneable 成员 public object Clone()
    {
    A a = new A();
    a.i = i; return a;
    } #endregion}
      

  3.   

    如果 Customer 类不是很大且无需继承,可以改成 struct 来做。
    因为 struct 是值类型,不会出现你一开始所提到的问题。
    不过,所带来的其他因为值类型与引用类型的不同,一定要注意。班兄提到的实现 IClonable 方案值得一用。另外,如果你的 BOSS 改了一个字段名,你也不用那么怕麻烦,因为这种事情在开发过程中经常会碰到的。
    你可使用 Ctrl + Shift + H 来打开 “在文件中替换”对话框,选择在整个工程、方案、或其它自定义替换范围等方式来进行批量替换。