我有以下包装类:
public class Wrapper
{
public int Member;
}
在一个单独的班级中,我有以下内容:
public class ContainerClass
{
private Wrapper data;
public Wrapper Property
{
get { return data; }
set { data = value; }
}
public void Foo()
{
Property.Member = 42;
}
}
When Property.Member
被修改为Foo()
,什么也没有发生(setter 被跳过)。但是,我仍然可以执行以下操作,例如:
public void Foo()
{
Property = Property;
}
并输入所需的设置器。所以我的问题是,为什么修改对象属性的成员不调用该属性的设置器?
因为您没有修改引用。您正在修改引用的成员。
举例来说,如果我让你站在房间的角落里并说:“拿着这个苹果”。如果我进来把苹果换成香蕉……我没有换你,所以你很高兴。但如果我把你换成其他人,你就会抱怨我取代了你。
..无论如何,这就是我的比喻。
另外,您还为类添加了前缀I
..这通常用在 .NET 领域的接口上。
编辑:我意识到,如果我让你拿着一块水果站在角落里..当我取代你时你可能不会抱怨..
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)