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

时间:2010-09-21 19:12:39

标签: c#

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

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

4 个答案:

答案 0 :(得分:240)

您可以找到所有您要查找的信息herehere(感谢Reed Copsey):

从第一个链接:

  

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

...

  

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

...

  

接口默认为内部访问。

...

  

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


从第二个链接:

  

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

对于嵌套类型:

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

答案 1 :(得分:9)

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

答案 2 :(得分:9)

来自MSDN:

顶级类型(未嵌套在其他类型中)只能具有internalpublic辅助功能。这些类型的默认可访问性为internal

<小时/> 嵌套类型(属于其他类型的成员)可以具有已声明的可访问性,如下表所示。

Default Nested Member Accessibility & Allowed Accessibility Modifiers

资料来源:Accessibility Levels (C# Reference)(12月6日 th ,2017)

答案 3 :(得分:0)

默认为private。除非它们是嵌套的,否则类为internal