我正在用C#构建WPF应用程序,并且我对类实例及其属性的getter和setter的工作方式有疑问。给出以下代码:
public class SomeClass
{
public int SomeProperty;
}
private SomeClass _anInstance;
public SomeClass anInstance
{
get{ return _anInstance; }
set
{
_anInstance = value;
}
}
anInstance = new SomeClass();
anInstance.SomeProperty = 5;
int anInt = anInstance.SomeProperty;
我希望这段代码创建至少一个SomeClass实例,然后将5分配给_anInstance.SomeProperty,然后将anInt设置为_anInstance.SomeProperty的值,但是我不确定它是否在使用anInstance。 SomeProperty或_anInstance.SomeProperty。
哪个被分配给5 /用于设置anInt,我将如何找出/知道以供将来参考?
答案 0 :(得分:0)
我将如何发现/知道?
设置断点并进入代码。调试器将向您显示当前执行的位置。
您的公共财产anInstance
的getter和setter都指向私有_anInstance
字段,然后“重定向”对该字段进行读写。
答案 1 :(得分:0)
由于SomeClass是引用类型,所以anInstance只是对_anInstance所引用的同一对象的公共引用。 SomeClass只有一个实例。