c# internal - wittamer123/blog GitHub Wiki

被 internal 修饰的东西只能在本程序集(当前项目)内被使用。 被 protected internal 修饰的属性/方法 可以在其他项目中,被派生类使用

namespace AssemblyA
{
    class Parent
    {
        protected internal int Number;
    }

    class Sample
    {
        public void Method()
        {
            var parent = new Parent();
            // 因為 Number 帶有 internal,所以沒繼承也能存取
            parent.Number = 10; 
        }
    }
}

namespace AssemblyB
{
    class Child : AssemblyA.Parent
    {
        public void Method()
        {
          // 因為 Number 帶有 protected,所以在不同組建也能存取
            Number = 20;
        }
    }
}