大学期间我一直在使用public,想知道public, private和protected之间的区别吗?

还有,相对于什么都没有,静态有什么作用呢?


当前回答

Private状态表示变量只能被同一类的对象访问。受保护状态将这种访问权限扩展到该类的后代。

“从上表中我们可以看到隐私和受保护之间的区别……我认为两者是一样的....那么这两个单独的命令有什么用呢?

查看MSDN链接了解更多信息

其他回答

这些访问修饰符指定成员可见的位置。你应该读读这个。以IainMH给出的链接为起点。

静态成员是每个类一个,而不是每个实例一个。

嗯…

静态意味着您可以在没有类实例的情况下访问该函数。

您可以直接从类定义中访问。

重新发布这个答案的精彩图表。

以下是维恩图中的所有访问修饰语,从更有限制的到更混杂的: 私人: private protected: c# 7.2新增 内部: 保护: 保护内部: 公众:

图形概述(简要总结)

实际上,情况要比这复杂一些。 现在(从c# 7.2开始),也有private protected,派生类是否在同一个程序集中也很重要。

因此,需要扩展概述:

请参阅有关此主题的c# -dotnet-docs。

因为静态类是密封的,所以它们不能被继承(除非是从Object继承),所以关键字protected在静态类上是无效的。

对于默认情况,如果你在前面不放访问修饰符,请参见这里: c#类和成员(字段,方法等)的默认可见性?

Non-nested

enum                              public
non-nested classes / structs      internal
interfaces                        internal
delegates in namespace            internal
class/struct member(s)            private
delegates nested in class/struct  private

嵌套:

nested enum      public
nested interface public
nested class     private
nested struct    private

此外,还有seal -关键字,它使类不可继承。 同样,在VB中。NET,关键字有时是不同的,所以这里有一个小抄:

c#中所有访问修饰符的描述