我是一名学生,正在寻找可以帮助我进一步了解如何在编写成员/类型时正确地将访问修饰符应用于成员/类型的资源。
我知道(在 C# 中)设置了哪些限制访问修饰符,如私有、公共、受保护等。当我编写自己的小项目时,我倾向于将所有内容都公开。我确信这是一种绝对可怕的做法,因为它只是将封装扔出窗外。我只是不知道何时使用内部与私人之类的东西是正确的。
有没有人有任何好的资源来帮助我理解访问修饰符的正确使用?
我是一名学生,正在寻找可以帮助我进一步了解如何在编写成员/类型时正确地将访问修饰符应用于成员/类型的资源。
我知道(在 C# 中)设置了哪些限制访问修饰符,如私有、公共、受保护等。当我编写自己的小项目时,我倾向于将所有内容都公开。我确信这是一种绝对可怕的做法,因为它只是将封装扔出窗外。我只是不知道何时使用内部与私人之类的东西是正确的。
有没有人有任何好的资源来帮助我理解访问修饰符的正确使用?
这是一个经验类型的问题。从最低权限级别开始,并根据需要提升。
换句话说,将所有内容设为私有。直到您发现需要将其提升为受保护或公开。随着时间的推移,您将了解您的类的预期用途和后来发现的用途。
开始将所有内容保密。如果您觉得有必要,请相应地更改修饰符,直到您有选择正确类型的感觉。
为了让事情变得更简单,请尝试使用TDD,否则在编写单元测试时可能会遇到更多麻烦......
我只是尽可能限制所有内容的访问:
任何一种教程或教材都会给你同样的指导,也就是其他帖子已经给你的指导。因此,不要期望“资源”在这个特定问题上提供太多有用的信息。
超出此范围的主要资源是其他人编写的代码。以一个大型 C# 项目(例如Mono或SharpDevelop)为例,研究它们是如何具体遵循已向您解释的原则的。此外,如果您要设计一个特定的类,请尝试在系统库中考虑类似的类,并尝试找出它是如何实现的(通过查看 Mono 源代码或使用 .NET 反射器)。
您应该从考虑类的接口开始,这是为了实现其目的而需要公开的一组必要且充分的例程。把它公之于众。其他一切都应该是私有的。
我倾向于保护所有不公开的东西。让我的用户可以自由地在我的课堂上做任何他们想做的事情。如果他们的课间休息,那将是他们的问题。
每次你从一个类继承时,你都需要知道它是如何工作的,即使 oop 是关于隐藏实现的。您可以隐藏实现,但不会隐藏文档。