为什么我可以在该实例之外调用另一个相同类型实例的私有方法?

如果我有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仅限于此程序或从此类派生的类    
私人访问仅限于此课程

访问修饰符与它实现类/类型而不是与该类的实例相关