zoukankan      html  css  js  c++  java
  • 实现深拷贝的一种方法

    声明接口:
        

        public interface IClone
        
    {
            T Clone
    <T>(T instance) where T : class;
        }


    建立CloneManager类实现接口:

    public class CloneManager:IClone
        
    {
            
    /// <summary>
            
    /// Clones the specified instance.
            
    /// </summary>
            
    /// <typeparam name="T"></typeparam>
            
    /// <param name="instance">The instance.</param>
            
    /// <returns>A new instance of an object.</returns>

            T IClone.Clone<T>(T instance)
            
    {
                XmlSerializer serializer 
    = new XmlSerializer(typeof(T));
                MemoryStream stream 
    = new MemoryStream();
                serializer.Serialize(stream, instance);
                stream.Seek(
    0, SeekOrigin.Begin);
                
    return serializer.Deserialize(stream) as T;
            }

        }


    实际应用代码:

    class Program
        
    {
            
    static void Main(string[] args)
            
    {
                IClone clone 
    = new CloneManager.CloneManager();
                AA ta 
    = new AA();
                ta.aa 
    = 123;
                ta.bb 
    = 234;
                AA tb 
    = clone.Clone<AA>(ta);
                ta.aa 
    = 999;
                ta.bb 
    = 888;
                System.Console.WriteLine(ta.aa);
                System.Console.WriteLine(ta.bb);
                System.Console.WriteLine(tb.aa);
                System.Console.WriteLine(tb.bb);
            }

        }


        
    public class AA
        
    {
            
    public int aa = 0;
            
            
    public int bb = 0;
        }


    简单吧!!

  • 相关阅读:
    linux rz -e
    (转载)总结一下SQL语句中引号(')、quotedstr()、('')、format()在SQL语句中的用法
    Searching the Web论文要点
    搜索提示(search suggest)文献阅读
    C++常用数据结构(对照python)
    FM,FFM,GBDT推导
    Ranking relevance in yahoo search (2016)论文阅读
    荀子劝学篇
    不要尝试去锯木屑
    3服务器Java虚拟机配置
  • 原文地址:https://www.cnblogs.com/adam/p/1165282.html
Copyright © 2011-2022 走看看