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;
        }


    简单吧!!

  • 相关阅读:
    React antd的select框的onchange事件 只能点击一次 如果想选中的值 还可以被点击 就用onselect事件
    formatTime.js
    typeScript
    React react-router在url参数不同的情况下跳转页面不更新
    React 组件
    三、猜字符小游戏
    二、Java学习之方法
    Java学习之数组
    JavaWeb的学习--第五天 javascript03
    JavaWeb的学习--第四天 javascript02
  • 原文地址:https://www.cnblogs.com/adam/p/1165282.html
Copyright © 2011-2022 走看看