C#中的包专用?

C#中的包专用?,c#,java,C#,Java,在Java中,没有任何可见性关键字的方法称为package private,可以从同一个包中的对象中看到它 如果一个方法或字段在C#中没有任何可见性关键字,它是否也是包私有的?如果没有,那么可见性是什么 如何在C#?中使字段包私有默认情况下,如果未指定,类将标记为内部。在这种情况下,只有来自同一程序集的类才能使用它 实际上,这可以通过使用来覆盖,它允许自动调整说明符的大小。如果其他程序集要查看内部类型,则默认情况下,类成员是私有的。默认情况下,类本身是包私有的。 包private称为“inter

在Java中,没有任何可见性关键字的方法称为package private,可以从同一个包中的对象中看到它

如果一个方法或字段在C#中没有任何可见性关键字,它是否也是包私有的?如果没有,那么可见性是什么


如何在C#?

中使字段包私有默认情况下,如果未指定,类将标记为
内部
。在这种情况下,只有来自同一程序集的类才能使用它


实际上,这可以通过使用来覆盖,它允许自动调整说明符的大小。如果其他程序集要查看内部类型,则默认情况下,类成员是私有的。默认情况下,类本身是包私有的。
包private称为“internal”

我认为c#中包private的等价物是internal,因此您可以在同一程序集中看到方法或属性

默认情况下,未指定访问修饰符的类是内部类


这是一个很好的总结

我认为相应的可见性访问关键字是内部的。还可以声明程序集并将内部成员标记为可访问

在C#中,方法和字段的默认访问权限是私有的

C#没有Java的“包私有”,但内部是封闭的;使用关键字内部


尼克:对于一个内部类,对于一个嵌套类,它是私有的(不确定),对于一个类成员,它是私有的。但是,我的意见是始终指定可见性,即使它对应于默认值。此外,我的建议是降低对实际严格要求的可见性(如果可能,则为私有要求,如果可能,则为受保护要求,否则为内部要求,等等)。代码分析(如果我没记错的话)有一些规则来检查可见性一致性这是错误的。内部和包私有不是一回事。内部是程序集专用的,而不是包专用的。