实例化时使用{}大括号设置属性
本文关键字:设置 属性 实例化 | 更新日期: 2023-09-27 17:58:48
有人知道为什么以下内容不会编译吗?ID的setter应该对两个类都是私有的,那么为什么我们可以实例化ClassA而不能实例化ClassB呢?
public class ClassA {
public string ID { get; private set; }
public void test() {
var instanceA = new ClassA() { ID = "42" };
var instanceB = new ClassB() { ID = "43" };
}
public class ClassB {
public string ID { get; private set; }
}
}
感谢
test()
是ClassA
的成员,因此它可以访问a的私有成员(和setter)。它不可以访问ClassB
的私有成员或setter,因此在实例B上出现错误,但在实例a上没有。
有关私人会员无障碍访问的更多信息,我鼓励您在相关问题上看到这个答案。
您的Test
方法位于Class A
中,因此可以访问。
Class B
在Class A
内部,A
不能仅仅因为组合而访问B
的私有成员。