0

我在这里有一个疑问,经过这么多解释,我仍然没有真正明白这一点。为什么我们需要声明一个私有静态方法?由于该方法是私有的,因此只能由类本身访问,并且可以轻松调用内部函数而无需创建实例,不是吗?还是我对这个概念错了?我的意思是我可以理解为什么我们有一个私有方法(因为我们希望只保留类本身的逻辑)并且我也理解为什么我们需要一个静态方法(因为我们不需要实例来访问该方法)。所以,我的问题是为什么我们需要在私有时将其设为静态?好像我们不希望任何其他类访问它并且不能直接从代码中调用它(因为它是私有的)但我们仍然将它保持为静态?

对不起,我很困惑。谁能帮我解决这个概念?

最好的问候, 易莹

4

2 回答 2

2

您可能需要从静态公共调用您的静态私有。静态公共不能访问非静态私有!

于 2012-05-18T00:55:31.847 回答
0

另一个原因可能是性能,具体取决于平台。对于 .NET 平台,在微软的静态代码分析工具FxCop 的文档中,可以找到以下语句:

不访问实例数据或调用实例方法的方法可以标记为静态(在 Visual Basic 中为共享)。将方法标记为静态后,编译器将向这些成员发出非虚拟调用站点。发出非虚拟调用站点将阻止在运行时对每个调用进行检查,以确保当前对象指针不为空。这可以为性能敏感的代码带来可衡量的性能增益。在某些情况下,无法访问当前对象实例代表了正确性问题。

于 2012-05-18T07:42:28.563 回答