写个类,类里有很多个属性,比如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只支持值类型
哦豁