User a User b 如何在不改变a对象引用的情况下,把b的所有属性赋给a,不要逐一复制,有没有一个外部方法,直接传这两个对象参数的方法 不要这样 
a.id=b.id 
a.name=b.name 我希望是 clone(a,b); 有没有这种方法?

解决方案 »

  1.   

    写个Clone方法.
    反射所有属性 然后循环附值把.
      

  2.   

    怎么能老图省事呢?没有这样的现成的方法。你可以给你的User添加比哪Clone,或直接写一个Copy方法来复制,比如:class User:ICloneable
    {
    }
    //或
    class User
    {
        public void Copy(User u)
        {}
    }
      

  3.   

    利用序列化的方法.条件是该对象能被序列化.
    public static object DeepClone(object source)
            {
                if (source == null) 
                    return null;
                Object objectReturn = null;
                using (MemoryStream stream = new MemoryStream())
                {
                    try
                    {
                        BinaryFormatter formatter = new BinaryFormatter();
                        formatter.Serialize(stream, source);
                        stream.Position = 0;
                        objectReturn = formatter.Deserialize(stream);
                    }
                    catch (Exception e)
                    {
                        int a = 1;
                    }
                }
                return objectReturn;
            }
      

  4.   

    方法是本无所谓有,无所谓无
    用的人多了,MS就扔进fwk了
    ..........