Установка защищенных / приватных свойств из другого экземпляра того же класса - PullRequest
1 голос
/ 02 апреля 2010

Если у меня есть класс, содержащий свойства с установленными уровнями доступности закрытого набора и защищенного набора, смогу ли я изменить эти свойства в другом экземпляре того же класса?

Примечание: я не на машине, на которой я могу проверить это прямо сейчас, иначе я бы просто запустил код ниже.

Например:

public class Foo
{
    public string A {get; private set;}
    public string B {get; protected set;}

    public void Bar() 
    {
        var someOtherFoo = new Foo();

        // Does this change someOtherFoo's A?
        someOtherFoo.A = "A";

        // Does this change someOtherFoo's B?
        someOtherFoo.B = "B";
    }
}

Ответы [ 3 ]

4 голосов
/ 02 апреля 2010

Да. Доступ к типу , а не к экземпляру. Это особенно полезно для таких вещей, как реализация равенства, так как вы можете проверить this.x == other.x && this.y == other.y;. Доступ также доступен для вложенных типов.

1 голос
/ 02 апреля 2010

Краткий ответ: Да

0 голосов
/ 02 апреля 2010

// Изменит ли это у someOtherFoo's A? // Это меняет someOtherFoo's B?

Да и да.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...