c# - 为什么不是所有字段/属性/方法都公开?

我知道这听起来很愚蠢,但我真的很想知道:)
我目前正在学习C#,

如您所知,您需要将“对象”(按钮,标签,文本,变量等)设置为公共对象或任何您喜欢的对象。

但是,您仍然需要编写如下代码:

// my point is you cant just type label1.text you need to type class.label1.text
// so there is no chance of getting bugged
//because there is label1 in each of forms/classes
 class Classlol = new class();
 classlol.label1.blabla


那么,以其他形式无法访问又有什么意义呢?为什么每件事默认都不公开或不公开?

谢谢。

最佳答案

使用类的重点是能够将代码分成逻辑上相关的部分。这使您的代码更易于理解和维护。

例如,如果您需要修改类中的代码,则可以将更多精力放在类的功能上,而将精力放在项目的其他部分上。但是,班级的公共成员在某种程度上限制了这种分离,因为如果您修改公共成员,则可能会影响项目的其他部分。

保持尽可能多的类私有(尽管仍可在您的应用程序中使用),以最大程度地将类与应用程序的其余部分分开。它使仅考虑正在处理的类中的逻辑变得更加容易,并且使您可以修改那些私有成员,而不必考虑应用程序的其他部分可能受到影响。

本文翻译自 https://stackoverflow.com/questions/5210540/

网站遵循 CC BY-SA 4.0 协议,转载或引用请注明出处。

标签 c# oop access-modifiers information-hiding public-members


相关文章:

python - 如何在Python中为自动创建的类对象分配名称

java - 继承和构图混乱?

python - 如何使函数成为绑定方法

c# - C#继承和方法

c++ - 将C ++成员函数声明为静态const会产生错误

c# - 尝试删除多对多关系中两个对象之间的连接时出现的问题

c# - 库中的ConfigureAwait(false)会丢失调用应用程序的同步上下文吗?

c# - 如何在C#中模拟多重继承? [重复]

c# - System.Text.Encoding.UTF8.GetBytes额外字节

c# - C#:可能无法在抽象类上实现受保护的内部抽象吗?