internal:就是程序集。
那么什么是程序集呢?就是“項目”也就是工程里中的csproj
比如:我有個解決方案,這個方案中有2個項目,1個是控制台程序,1個是webapi項目,那么我這個解決方案中就包括這2個程序集。
接着,我在WebApplication1這個程序集中定義個類:
namespace WebApplication1.Common { public class CA { private string caPrivateName = "privateName"; internal string caInternalName = "lijie"; protected internal string caProtectedInternalName = "LiJie"; public string caPublicName = "lj"; public CA() { } public string GetName() { return caPrivateName; } } }
然后,我在控制台程序中調用這個WebApplication1的東西:
首先要加入“引用”:
然后開始調用:
可以看到public的可以訪問,internal 和 protected internal 不能訪問。
再看:我在控制台程序中新增個類,繼承 WebApplication1.Common.CA 類:
protected internal:就是個並集,同一程序集的可以訪問,非同一程序集的子類也可以訪問。