在 public 实例上使用 getter 和 setter 来设置 class 的私有实例时,设置了哪个 class 实例的属性?

Which class instance's properties are set when using a getter and setter on a public instance to set a private instance of that class?

我正在用 C# 构建 WPF 应用程序,我对 class 实例的 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,为了将来参考,我如何才能找到 out/know?

how would i be able to find out/know?

设置断点并进入您的代码。调试器会告诉你当前执行的位置。

您的 public 属性 anInstance 的 getter 和 setter 只是指向私有 _anInstance 字段,"redirect" 读取和写入该字段。

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