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

  • 相关阅读:
    质数学习笔记
    一本通 1615:【例 1】序列的第 k 个数
    2019.05.09考试解题报告
    洛谷 P1057 传球游戏
    浅谈逆序对
    Set学习笔记
    洛谷 P1115 最大子段和
    洛谷 P1234 小A的口头禅
    About Her
    洛谷 P1164 小A点菜
  • 原文地址:https://www.cnblogs.com/MycnBlogs7854/p/14541614.html
Copyright © 2011-2022 走看看