为什么我可以在该实例之外调用另一个相同类型实例的私有方法?
如果我有ObjectA,并且它有一个私有方法GetPrice()
并且还有一个相同类型的“父”字段,为什么我能在子实例中调用父实例上的GetPrice()
?
例:
private decimal GetPrice() { ObjectA parent = Parent; if(parent != null) { return parent.GetPrice(); // Why is this OK? } return 0; }
因为私有意味着“其他类型无法访问”,而不是“其他实例无法访问”。
因为private
作用域仅限于类 ,而不是C#规范中定义的实例 :
1.6.2辅助function类的每个成员都有一个关联的辅助function,它控制能够访问该成员的程序文本区域。 可访问性有五种可能的forms。 这些总结在下表中。
可访问性含义 公共访问不限 protected Access仅限于此类或从此类派生的类 内部访问仅限于此程序 protected internal Access仅限于此程序或从此类派生的类 私人访问仅限于此课程
访问修饰符与它实现类/类型而不是与该类的实例相关