最近我使用 C# 时意识到,我可以从 Foo
的静态函数甚至其他 Foo
对象中调用私有函数。在我学习访问修饰符的所有知识后,这听起来非常奇怪。
据我所知,当一个函数执行某种内部过程时,你会将它设为私有。只有对象本身知道何时使用这些函数,因为其他对象不应该/不能控制该对象的流程。难道同一类的其他对象有任何理由例外于这个非常直观的规则吗?
根据要求,以下是一个示例:
public class AClass {
private void doSomething() { /* Do something here */ }
public void aFunction() {
AClass f = new AClass();
f.doSomething(); // I would have expected this line to cause an access error.
}
}