【发布时间】:2023-04-02 23:55:01
【问题描述】:
当我们在我们的团队解决方案中实现目前未被其他类使用的方法时,访问修饰符应该是公共的还是私有的? 我相信“一个公共成员说这个成员代表了这个对象提供的关键的、记录在案的功能。”。我们只将“实现细节”方法设为私有,所有将来可能有用的方法都应该公开,即使现在其他类中没有我们方法的消费者。但是我的对手说这样的方法应该是私有的。你觉得怎么样?
添加: 让我们更具体一点。例如有一个类SqlHelper。 其中有用于操作 SQL Server 的有用功能。 特别是使用到 SQL 服务器的连接。但不仅在那个班级。
例如,我需要实现将处理 SqlExeptions 的公共静态 HandleSqlExeption 方法(现在仅适用于 SqlHelper 类)。但我希望在所有在异常处理中使用 SQL 连接进行操作的类中都将使用此方法(而不是简单,例如: 捕捉(异常){ MsgBox {“SqlError”}; 正如某处现在发生的那样。所以我认为公共访问修饰符会告诉其他同事他们可以使用这种方法。而 private 将隐藏该方法。如果有人要求使用这种方法,我将需要更改代码并重新构建程序集。为什么?只有负面的。
【问题讨论】:
-
阅读这个 MSDN 链接,它解释得很清楚Access Modifiers
-
我的经验法则:一切都应该是
private,直到你真正需要它是public(或internal、protected等) -
@leppie:我的经验法则是 100% 的相反。作为类提供的连贯接口的一部分以及它提供的逻辑功能的所有内容都应该是公共的。 (有趣的是,我们的两条规则可能会在 98% 的情况下达成一致。)
标签: c# .net coding-style