在C#中internal、protected internal关键字是什么意思?

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:就是个并集,同一程序集的可以访问,非同一程序集的子类也可以访问。

 

posted @ 2017-02-17 12:11  幸福安康  阅读(3747)  评论(0编辑  收藏  举报