0

我是一名学生,正在寻找可以帮助我进一步了解如何在编写成员/类型时正确地将访问修饰符应用于成员/类型的资源。

我知道(在 C# 中)设置了哪些限制访问修饰符,如私有、公共、受保护等。当我编写自己的小项目时,我倾向于将所有内容都公开。我确信这是一种绝对可怕的做法,因为它只是将封装扔出窗外。我只是不知道何时使用内部与私人之类的东西是正确的。

有没有人有任何好的资源来帮助我理解访问修饰符的正确使用?

4

6 回答 6

3

这是一个经验类型的问题。从最低权限级别开始,并根据需要提升。

换句话说,将所有内容设为私有。直到您发现需要将其提升为受保护或公开。随着时间的推移,您将了解您的类的预期用途和后来发现的用途。

于 2009-07-08T21:13:17.033 回答
0

开始将所有内容保密。如果您觉得有必要,请相应地更改修饰符,直到您有选择正确类型的感觉。

为了让事情变得更简单,请尝试使用TDD,否则在编写单元测试时可能会遇到更多麻烦......

于 2009-07-08T21:14:30.340 回答
0

我只是尽可能限制所有内容的访问:

  • 默认私有
  • 否则是内部的,如果它是向此程序集中的其他类公开的 API
  • 或者,如果它是在程序集之外公开的 API,则为 public
  • 或者,如果它打算仅从子类调用,则为 protected。
于 2009-07-08T21:18:14.387 回答
0

任何一种教程或教材都会给你同样的指导,也就是其他帖子已经给你的指导。因此,不要期望“资源”在这个特定问题上提供太多有用的信息。

超出此范围的主要资源是其他人编写的代码。以一个大型 C# 项目(例如MonoSharpDevelop)为例,研究它们是如何具体遵循已向您解释的原则的。此外,如果您要设计一个特定的类,请尝试在系统库中考虑类似的类,并尝试找出它是如何实现的(通过查看 Mono 源代码或使用 .NET 反射器)。

于 2009-07-08T21:23:53.127 回答
0

您应该从考虑类的接口开始,这是为了实现其目的而需要公开的一组必要且充分的例程。把它公之于众。其他一切都应该是私有的。

于 2009-07-08T21:33:00.583 回答
0

我倾向于保护所有不公开的东西。让我的用户可以自由地在我的课堂上做任何他们想做的事情。如果他们的课间休息,那将是他们的问题。

每次你从一个类继承时,你都需要知道它是如何工作的,即使 oop 是关于隐藏实现的。您可以隐藏实现,但不会隐藏文档。

于 2011-05-14T13:01:10.640 回答