zoukankan      html  css  js  c++  java
  • MyDAL

    索引:

    目录索引

    一.API 列表

      .DeepClone()

        用于 Model / Entity / ... ... 等引用类型对象的深度克隆

      特性说明

        1.不需要对对象做任何特殊处理,直接 .DeepClone() 即可得到该对象的深度克隆

        2.不受对象层次深度限制,均可实现深度克隆(下面会给出几个简单示例 ... ...)

    二.API 使用

      1.命名空间,只需:

    1 using MyDAL.ModelTools;

      2.被深度克隆的对象只需是一个 class ,如下:

    1     public class ModelEntity
    2     {
    3         public int ValueField { get; set; }
    4 
    5         public string ReferenceField { get; set; }
    6 
    7         public ModelEntity ObjectField { get; set; }
    8     }

      3.深度克隆 / 深度复制 示例

     1             // 对象准备
     2             var obj = new ModelEntity
     3             {
     4                 ValueField = 10,
     5                 ReferenceField = "源值10",
     6                 ObjectField = new ModelEntity
     7                 {
     8                     ValueField = 11,
     9                     ReferenceField = "源值11",
    10                     ObjectField = new ModelEntity
    11                     {
    12                         ValueField = 12,
    13                         ReferenceField = "源值12"
    14                     }
    15                 }
    16             };
    17 
    18             // 深度克隆
    19             var cloneObj = obj.DeepClone();
    20 
    21             // 源对象 值展示
    22             Console.WriteLine(obj.ValueField);   // 10
    23             Console.WriteLine(obj.ReferenceField);  // 源值10
    24             Console.WriteLine(obj.ObjectField.ValueField);  // 11
    25             Console.WriteLine(obj.ObjectField.ReferenceField);  // 源值11
    26             Console.WriteLine(obj.ObjectField.ObjectField.ValueField);  // 12
    27             Console.WriteLine(obj.ObjectField.ObjectField.ReferenceField);  // 源值12
    28 
    29             // 克隆对象 值展示
    30             Console.WriteLine(cloneObj.ValueField);  // 10
    31             Console.WriteLine(cloneObj.ReferenceField);  // 源值10
    32             Console.WriteLine(cloneObj.ObjectField.ValueField);  // 11
    33             Console.WriteLine(cloneObj.ObjectField.ReferenceField);  // 源值11
    34             Console.WriteLine(cloneObj.ObjectField.ObjectField.ValueField);  // 12
    35             Console.WriteLine(cloneObj.ObjectField.ObjectField.ReferenceField);  // 源值12
    36 
    37             // 变更 克隆对象 的值
    38             cloneObj.ReferenceField = "新值10";
    39             cloneObj.ObjectField.ReferenceField = "新值11";
    40             cloneObj.ObjectField.ObjectField.ReferenceField = "新值12";
    41 
    42             // 源对象 值展示
    43             Console.WriteLine(obj.ValueField);   // 10
    44             Console.WriteLine(obj.ReferenceField);  // 源值10
    45             Console.WriteLine(obj.ObjectField.ValueField);  // 11
    46             Console.WriteLine(obj.ObjectField.ReferenceField);  // 源值11
    47             Console.WriteLine(obj.ObjectField.ObjectField.ValueField);  // 12
    48             Console.WriteLine(obj.ObjectField.ObjectField.ReferenceField);  // 源值12
    49 
    50             // 克隆对象 值展示
    51             Console.WriteLine(cloneObj.ValueField);  // 10
    52             Console.WriteLine(cloneObj.ReferenceField);  // 新值10
    53             Console.WriteLine(cloneObj.ObjectField.ValueField);  // 11
    54             Console.WriteLine(cloneObj.ObjectField.ReferenceField);  // 新值11
    55             Console.WriteLine(cloneObj.ObjectField.ObjectField.ValueField);  // 12
    56             Console.WriteLine(cloneObj.ObjectField.ObjectField.ReferenceField);  // 新值12

                                             蒙

                                        2019-03-09 15:22 周六

  • 相关阅读:
    js-禁止微信H5页面点击右上角菜单时出现“复制链接”,且分享仅支持微信分享
    js-获取用户移动端网络类型:wifi、4g、3g、2g...
    小程序-云开发部署流程(步骤二)
    小程序-(报错)请使用 2.2.3 或以上的基础库以使用云能力(步骤一)
    解决iOS10的Safari下Meta设置user-scalable=no无效的方法
    领域驱动, 事件驱动,测试驱动
    spring web项目中整合netty, akka
    why rpc
    nginx配置https证书
    org.apache.http.NoHttpResponseException
  • 原文地址:https://www.cnblogs.com/Meng-NET/p/10500946.html
Copyright © 2011-2022 走看看