zoukankan      html  css  js  c++  java
  • C# 获取对象值,不获取地址

    /// <summary>
    /// 使用反射将一个对象的值赋值给另一个对象
    /// </summary>
    /// <param name="obj">原对象</param>
    /// <param name="newobj">新的对象</param>
    /// <returns></returns>
    public static T CopyToT<T>(object obj,object newobj)
    {
    T t = default(T);
    if (newobj==null)
    {
    return t;
    }
    t = (T) newobj;
    if (obj == null)
    {
    return t;
    }

    PropertyInfo[] propertyInfos = obj.GetType().GetProperties();//得到原对象所有属性
    Type ty = t.GetType();
    if (propertyInfos.Length < 0)
    {
    return t;
    }
    foreach (PropertyInfo pi in propertyInfos)//循环对象属性
    {
    string name = pi.Name;
    object value = pi.GetValue(obj, null);
    BindingFlags flag = BindingFlags.Public | BindingFlags.IgnoreCase | BindingFlags.Instance;//忽略属性名称大小写
    var p = ty.GetProperty(name, flag);//根据原对象属性名称得到新对象属性
    if (p != null)
    {
    p.SetValue(t,value,null);//赋值
    }
    }
    return t;
    }

    使用方法:

    GoodsSpec goodsSpec = new GoodsSpec();
    goodsSpec = PosApi.CopyToT<GoodsSpec>(button.Tag,new GoodsSpec());

    注:PosApi为类名,button.Tag为需要赋值的对象

    转自:https://www.cnblogs.com/janeaiai/p/6566800.html

  • 相关阅读:
    前端模板引擎编译
    h5与app混合开发,jsbridge
    vuex
    async await promise
    node端口被占用
    npm工作流 与webpack 分同环境配置
    GraphQL
    mybatis批量删除、插入
    Oracle数据库速查知识文档
    Oracle刷新物化视图
  • 原文地址:https://www.cnblogs.com/MycnBlogs7854/p/14541614.html
Copyright © 2011-2022 走看看