如果我有ObjectA,并且它有一个私有方法GetPrice()
并且还有一个相同类型的“父”字段,为什么我能够在父实例中调用GetPrice()
儿童实例?
示例:
private decimal GetPrice()
{
ObjectA parent = Parent;
if(parent != null)
{
return parent.GetPrice(); // Why is this OK?
}
return 0;
}
答案 0 :(得分:12)
因为私有表示“其他类型无法访问”,而不是“其他实例无法访问”。
答案 1 :(得分:6)
由于private
范围仅限于类,而不是C# spec中定义的实例:
1.6.2可访问性 类的每个成员都有一个相关的可访问性,它可以控制 程序文本的区域,可以访问该成员。那里 有五种可能的可访问性形式。这些总结在 下表。
Accessibility Meaning public Access not limited protected Access limited to this class or classes derived from this class internal Access limited to this program protected internal Access limited to this program or classes derived from this class private Access limited to this class
答案 2 :(得分:1)
访问修饰符与它实现类/类型而不是与该类的实例相关