从同一个类的不同实例设置受保护/私有属性

时间:2010-04-02 19:03:25

标签: c# accessibility

如果我的类包含设置了私有集和受保护集可访问性级别的属性,我是否可以在同一个类的另一个实例上更改这些属性?

注意:我现在不在我可以测试它的机器上,否则我只是运行下面的代码。

例如:

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 个答案:

答案 0 :(得分:4)

是。访问权限是类型,而不是实例。这对于实现相等性等特别有用,因为您可以测试this.x == other.x && this.y == other.y;嵌套类型也可以访问。

答案 1 :(得分:1)

简答:是的

答案 2 :(得分:0)

//这会改变someOtherFoo的A吗? //这会改变someOtherFoo的B吗?

是的,是的。