【发布时间】:2013-04-27 14:38:41
【问题描述】:
在使用 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.
}
}
【问题讨论】:
-
我不确定你在这里描述什么。你能发布一些例子吗?
-
在没有对象引用的情况下,不能从同一个类中的静态方法调用非静态方法。
标签: c# class object access-modifiers