为什么在c#中使用“public”不好

时间:2016-12-14 16:04:17

标签: c#

所以前几天我被告知在c#中使用public是不好的,所以说我创建了一个新类,在该类中我有一个方法,为什么最好将它声明为

private void nameOfMethod()

而不是

public void nameOfMethod()

我只是好奇,似乎无法在任何地方找到答案,那个告诉我不要使用公共错误的人?任何帮助将不胜感激

修改 我理解公共私人和受保护之间的区别完全正常,我只是想知道为什么我被告知最好避免公开

2 个答案:

答案 0 :(得分:5)

publicprivate的使用是指面向对象编程的关键概念之一:封装或信息隐藏。

封装意味着对象的内部表示通常在对象定义之外的视图中隐藏。通常,只有对象自己的方法可以直接检查或操纵其字段。

隐藏对象的内部通过阻止用户将组件的内部数据设置为无效或不一致状态来保护其完整性。封装的一个假设好处是它可以通过允许开发人员限制软件组件之间的相互依赖性来降低系统复杂性,从而提高健壮性(参见维基百科上的Encapsulation)。

通常,如果方法或属性打算在对象之外使用,则将其设为public,如果对象仅在内部使用,则将其设为private。

答案 1 :(得分:2)

一般来说,只有在需要公开的情况下才公开类型是一个好主意。该组合的消费者的假设是其中包含的所有公共类型都是公平的游戏。如果您不希望程序集的使用者使用给定类型,请确保它不公开。通过公开,您可以隐含地允许程序集的使用者使用该类型,并且通常期望您支持这种类型,并且在没有适当文档的情况下不对其进行重大更改。