• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

c#获取引用参数的值,但不取地址

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

/// <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());


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
linux环境应用程序LOG日志打印(C语言)发布时间:2022-07-13
下一篇:
一个简单的C#文件日志组件发布时间:2022-07-13
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap