C#类和成员(字段,方法等)的默认可见性?

Rya*_*ers 152 c#

我正在尝试找到C#各个方面的默认可见性的参考.类类型,字段,方法,枚举等

有人可以提供这些列表以及它们的默认可见性(即没有前缀修饰符)吗?

Ode*_*ded 253

您正在寻找的所有信息都可以在这里这里找到(感谢Reed Copsey):

从第一个链接:

直接在命名空间内声明的类和结构(换句话说,不嵌套在其他类或结构中)可以是公共的或内部的.如果未指定访问修饰符,则Internal是默认值.

...

默认情况下,类成员和结构成员(包括嵌套类和结构)的访问级别是私有的.

...

接口默认为内部访问.

...

代表的行为类似于类和结构.默认情况下,它们在命名空间内直接声明时具有内部访问权限,嵌套时具有私有访问权限.


从第二个链接:

顶级类型(不嵌套在其他类型中)只能具有内部或公共可访问性.这些类型默认可访问性是内部的.

对于嵌套类型:

Members of    Default member accessibility
----------    ----------------------------
enum          public
class         private
interface     public
struct        private

  • 来自Reed信息的精彩汇编,但您忘了指定此类访问修饰符也适用于方法. (6认同)
  • @Joel你是什么意思?他明确表示"成员".成员是数据和行为,因此包含方法. (4认同)

Nic*_*ler 10

来自MSDN:

顶级类型(不嵌套在其他类型中)只能具有internalpublic可访问性.这些类型的默认可访问性是internal.


嵌套类型是其他类型的成员,可以具有声明的可访问性,如下表所示.

默认嵌套成员可访问性和允许的辅助功能修饰符

来源:辅助功能级别(C#参考)(12月6日,2017)


小智 9

默认情况下,类的访问修饰符是internal.这意味着,一个类可以在同一个程序集中访问.但是,如果我们希望从其他程序集访问该类,则必须将其公开.

  • 此信息已存在于其他答案中.当您有其他信息要提供或者您认为其他答案有误时,您应该只回答一个问题,尤其是旧问题.无论如何,欢迎来到Stack Overflow. (18认同)