"私人"和"受保护的内部"有什么区别?

avi*_*irk 14 .net c# oop access-modifiers

我只是想知道私有受保护的内部访问说明符之间的实际区别.我所知

可见自己的班级成员:私人和受保护的内部

可见其他类为对象:两个 NO

可见的命名空间集合以外的其他类的对象:两个 NO

可见的命名空间集合外的子类为对象:两个 NO

如果私有受保护的内部做同样的事情,为什么我们需要两者只是一个应该是否足够?

Wil*_*den 26

  • protected internal构件是在当前程序集中的任何代码可见在另一组件上的派生类.在技术的话,它的逻辑和protectedinternal.
  • 一个private成员是可见只有在同一类的代码.

protected internal实际上是第二个最宽松的访问修饰符之后public.


值得注意的是,protected它可以说比允许宽松internal,因为它允许从您无法控制的代码(即其他程序集)进行访问.虽然internal允许从当前程序集中的所有代码访问,但此代码是您的,您可以控制它!

换句话说,protected(和protected internal)成员是程序集的公共API的一部分(因此应该记录在案).internal成员不是.


Ste*_*ger 25

图形概述(简要总结)

能见度