如何通过电话回叫

问题描述 投票:-3回答:1

每个人。我有以下代码:

myList.Add(new Model(1, "David"));

        Model m = myList[0] as Model;
        m.name = "Leo";

        MessageBox.Show(myList[0].name);

MessageBox向我显示'Leo',而我看到'David'。如何在不删除此行的情况下将“ David”视为结果:

m.name = "Leo";

谢谢。

[请帮助我,谢谢。

c# wpf
1个回答
0
投票

类作为引用类型是.NET框架的基础,因此您不能只是“绕过”它。如果您希望m成为列表中的different实例,那么您需要clone实例,而不是直接引用它。有很多方法可以做到这一点,而这并不是您想要的,所以我将留给您研究如何做到这一点。或者,如果您想以某种方式保留原始属性,请在更改属性之前将其放入变量中:

    Model m = myList[0] as Model;

    string oldName = m.Name
    m.name = "Leo";

    MessageBox.Show(oldName);

我还怀疑这不是您想要的。

要点是没有办法简单地将引用类型作为值类型进行“处理”。

© www.soinside.com 2019 - 2024. All rights reserved.