两个具有相同属性的类赋值
Posted xwxwxw
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了两个具有相同属性的类赋值相关的知识,希望对你有一定的参考价值。
今天项目中有两个类,其中相同的属性比较多,手动代码量大。借鉴此篇博客https://www.cnblogs.com/gester/p/5816643.html,然后根据自身需求修改了一下,代码如下:
[TestClass] public class UnitTest1 { [TestMethod] public void TestMethod1() { var b = new B { Age = 1, UserName = "1" }; var a = new A { Age = 2, UserName = "2", Sex = 2 }; var b2 = Mapper<B, A>(b,a); } public class A { public int Age { get; set; } public string UserName { get; set; } public int Sex { get; set; } } public class B { public int Age { get; set; } public string UserName { get; set; } } public static D Mapper<D, S>(D d,S s) { try { var sType = s.GetType(); var dType = typeof(D); foreach (PropertyInfo sP in sType.GetProperties()) { foreach (PropertyInfo dP in dType.GetProperties()) { if (dP.Name == sP.Name) { dP.SetValue(d, sP.GetValue(s)); break; } } } } catch (Exception ex) { } return d; } }
我这里两个类都是已存在的实例,这个方法是两个实例类互转。
以上是关于两个具有相同属性的类赋值的主要内容,如果未能解决你的问题,请参考以下文章
创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量。 编写两个构造方法:一个没有(代码片段