参考自Default visibility for C# classes and members (fields, methods, etc)?
Classes and structs that are declared directly within a namespace (in other words, that are not nested within other classes or structs) can be either public or internal. Internal is the default if no access modifier is specified.
直接声明在命名空间下的类和结构体,默认是internal的。
The access level for class members and struct members, including nested classes and structs, is private by default.
类和结构体的成员,包括内嵌的类和结构体,默认是private的
interfaces default to internal access.
接口默认是internal的
Delegates behave like classes and structs. By default, they have internal access when declared directly within a namespace, and private access when nested.
委托和类以及结构体类似。直接声明在命名空间下的访问权限默认是internal的。如果内嵌的话,就是private的。
Top-level types, which are not nested in other types, can only have internal or public accessibility. The default accessibility for these types is internal.
总结,最高等级的类型(没有内嵌在其他类型中),只能有internal和public的访问权限。这些类型默认的访问权限是internal
然而对于内嵌的类型来说
And for nested types:
Members of Default member accessibility
---------- ----------------------------
enum public //enum的成员是public的访问权限
class private //类的成员,默认是private的访问权限
interface public //接口的成员,默认是public的访问权限
struct private //结构体的成员,和class类似,默认的访问权限也是private的