在公共实例上使用getter和setter设置该类的私有实例时,会设置哪个类实例的属性?

时间:2019-01-08 08:39:06

标签: c# properties getter

我正在用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,我将如何找出/知道以供将来参考?

2 个答案:

答案 0 :(得分:0)

  

我将如何发现/知道?

设置断点并进入代码。调试器将向您显示当前执行的位置。

您的公共财产anInstance的getter和setter都指向私有_anInstance字段,然后“重定向”对该字段进行读写。

答案 1 :(得分:0)

由于SomeClass是引用类型,所以anInstance只是对_anInstance所引用的同一对象的公共引用。 SomeClass只有一个实例。