Какие свойства экземпляра класса задаются при использовании метода get и set для открытого экземпляра для установки частного экземпляра этого класса? - PullRequest
0 голосов
/ 08 января 2019

Я создаю приложение WPF на C #, и у меня есть вопрос о том, как работают методы получения и установки для экземпляров классов и их свойства; учитывая следующий код:

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, но я не уверен, использует ли он экземпляр. SomeProperty или _anInstance.SomeProperty.

Какой из них назначен на 5 / используется для установки anInt, и, для дальнейшего использования, как я смогу узнать / узнать?

Ответы [ 2 ]

0 голосов
/ 08 января 2019

Поскольку SomeClass является ссылочным типом, anInstance является просто общедоступной ссылкой на тот же объект, на который ссылается _anInstance. Существует только один экземпляр SomeClass.

0 голосов
/ 08 января 2019

как мне узнать / узнать?

Установите точки останова и войдите в свой код. Отладчик покажет вам, где находится выполнение.

Получатели и установщики вашей общедоступной собственности anInstance просто указывают на приватное поле _anInstance, а "redirect" читает и записывает в него.

...