为什么要使用访问修饰符

Why use access modifiers

我知道不同访问修饰符之间的区别以及何时使用它们,但我不知道为什么。我知道它简化了一个项目,但是还有其他用途吗?安全?

如果一切都是 public,那么可维护性就会变得更加困难,因为您永远无法确定 class/member 是否可以 modified/removed,因为任何外部的东西都可以使用它。如果声明了某些内容 private/protected/internal,当您稍后 return 对代码进行更改时,您可以清楚地了解可以访问它的内容以及如何在不破坏其他组件的情况下进行修改。

它还通过隐藏内部成员来降低外部眼睛的复杂性(封装)。

顾名思义,它们允许您提供访问权限。您可以定义一个 class 成员 protected 或 private ,这使得 class 对象外部无法访问它们。因此,它们更多地是关于访问权限而不是安全性。您可以阅读更多 here

在大团队中,一切都变得更加清晰。比方说,您给了某人您的 .dll,但他们没有您的源代码。你想用"USE IT SPARELY"写很多XML-评论吗?

有时 - 您的 .dll 是您的最终产品。你需要避免错误

那么,我认为合适的用例:

避免使用不应独立调用的内部方法。如果您有一系列私有方法,- 使用共享 properties/fields - 您不希望有人使用它们并引发意外异常,对吗?

避免与用于内部目的的 properties/fields 混淆

还有更多...