zoukankan      html  css  js  c++  java
  • .net 父类值赋给子类

    1、最简单的方式,反射+泛型

        优点:字段修改时,无需更改代码,只需要更新实体即可

        缺点:因为用到反射,可能效率会稍微弱那么一点点,没有实际用太多字段测试

    public static cClass ParentCopyToChild<pClass,cClass>(pClass parent) where cClass: class,pClass,new()
            {
                //ChildClass child = new ChildClass();
                cClass child = new cClass();
    
                var ParentType = typeof(pClass);
                
                var Properties = ParentType.GetProperties();
                
                foreach (var Propertie in Properties)
                {
                    if (Propertie.CanRead && Propertie.CanWrite)
                    {
                        Propertie.SetValue(child, Propertie.GetValue(parent, null), null);
                    }
                }
                
                return child;
            }
    

    2、子类中加入赋值操作

    public class TreeViewOrgEx:TreeViewOrg
        {
            public long ParentCode = 0;
            public string TypeName = string.Empty;
    
            //树开启多选框时,此属性决定是否默认选中
            public bool isChecked;
            //树开启多选框时,此属性决定多选框是否禁用
            public bool chkDisabled;
            //树是否默认展开
            public bool open = true;
    
            public int ISRole = 0;
    
            //需要一个默认构造函数
            public TreeViewOrgEx()
            {
    
            }
    
            public TreeViewOrgEx(TreeViewOrg orgBase)
            {
                this.ID = orgBase.ID;
                this.OrgCode = orgBase.OrgCode;
                this.OrgName = orgBase.OrgName;
                this.OrgLevel = orgBase.OrgLevel;
                this.OrgType = orgBase.OrgType;
                this.SourceCode = orgBase.SourceCode;
                this.UpdateTime = orgBase.UpdateTime;
            }
        }
    

      赋值

    TreeViewOrg tempOrg = new TreeViewOrg();
    
    tempOrg.OrgCode = 10000000000;
    
    TreeViewOrgEx orgEx = new TreeViewOrgEx(tempOrg);
    
    orgEx.ParentCode = 20000000000;
    

      3、写方法操作

    public void TreeViewOrgToTreeViewOrgEx(TreeViewOrg org, TreeViewOrgEx orgEx)
            {
                orgEx.ID = org.ID;
                orgEx.OrgCode = org.OrgCode;
                orgEx.OrgName = org.OrgName;
                orgEx.OrgLevel = org.OrgLevel;
                orgEx.OrgType = org.OrgType;
                orgEx.SourceCode = org.SourceCode;
               orgEx.UpdateTime = org.UpdateTime;
            }
    

      

  • 相关阅读:
    centos7安装kubenetes
    用户密码字典
    curl使用
    docker部署rabbitmq集群
    记一次使用docker搭建fastdfs服务的过程
    filebeat删除多余标签
    Python format格式化输出
    python3 统计NGINX pv uv 最多IP访问
    linux修改网卡名为eth0
    模式查找
  • 原文地址:https://www.cnblogs.com/zhoushangwu/p/10849330.html
Copyright © 2011-2022 走看看