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 周六

  • 相关阅读:
    类数据源Visual C++对ODBC数据库资源的访问
    变量对话框MFC 关于控件变量的使用
    S3C2440上LCD驱动(FrameBuffer)实例开发讲解(二)
    设备内存缓冲区和 /proc/iomem
    multiplexed pins
    电脑硬件资源有冲突怎么处理?
    redhat open source university 硬件资源
    深入理解linux系统下proc文件系统内容
    S3C2440上LCD驱动(FrameBuffer)实例开发讲解(一)
    Framebuffer文章收集
  • 原文地址:https://www.cnblogs.com/Meng-NET/p/10500946.html
Copyright © 2011-2022 走看看