c# 使用类中的方法更新自己

写个类,类里有很多个属性,比如Age,但我并不想知道Age的具体名字并使用p.Age这样的操作来更新属性

 public class Person
    {
        public int Age { get; set; }
        public void Load()
        {
            Console.WriteLine("从配置文件反序列对象,所以这里会出现一个新的对象");
            Person poersonFromLocal = new Person() { Age = 100 };
            Console.WriteLine("现在,我希望这个新的对象代替当前这个对象,也就是 this = poersonFromLocal,但this明显是无法这样操作的");
        }
        public void Save()
        {
            Console.WriteLine("将当前类序列化保存到硬盘");
        }
    }

操作1,修改Load方法,使他返回一个新对象来给p1赋值,这和重新new一个对象没有啥区别

      Person p1 = new Person();
      Person p2 = p1.Load();//new Person() { Age = 99 };
      p1 = p2;

操作2,使用反射的方式设置每一个属性

但我是依然希望使用 p.Load() 这样的操作之后,p就是新的对象了,只需要一句代码,我找到和我有类似想法的问题:

https://stackoverflow.com/questions/19394540/automatic-update-existing-class-properties-from-an-instance-of-the-same-class

我找到一些其他答案,这符合我期待的操作

但是ref只支持值类型

哦豁

原文地址:https://www.cnblogs.com/trykle/p/14120012.html