在使用 C# 时,我最近意识到我可以从的静态函数,甚至从其他对象调用Foo
对象的私有函数。在我了解了访问修饰符的所有内容之后,这对我来说听起来很奇怪。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.
}
}