两个具有相同属性的类赋值

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;
        }
    }

我这里两个类都是已存在的实例,这个方法是两个实例类互转。

以上是关于两个具有相同属性的类赋值的主要内容,如果未能解决你的问题,请参考以下文章

两个不相同的类之间如果赋值

利用Java反射实现两个具有相同属性bean赋值

JS 两个含有部分相同属性的对象如何快速给对应的key赋值

Linq 确保没有两个对象具有相同的属性值

创建一个叫做机动车的类: 属性:车牌号(String),车速(int),载重量(double) 功能:加速(车速自增)减速(车速自减)修改车牌号,查询车的载重量。 编写两个构造方法:一个没有(代码片段

php静态属性