protected可以让任何该类的子类访问
protected internal只可以让同一个名字空间中的子类访问现在一个工程里面有2个命名空间
namespace ConsoleApplication1
{
class ClassA
{
protected internal int c;
}
}namespace ConsoleApplication2
{
class Program:ClassA
{
void setc()
{
this.c = 1;
}
}
}编译没有错
应该是protected internal 修饰的变量只能被
相同命名空间的派生类访问啊
为什么不同空间的派生类也能访问呢?如果把该工程编译后生成的exe文件
添加到其他工程的引用中,
再构建一个classA的派生类
同样可以访问c
这是怎么回事protected internal 到底要怎么用啊?
==================================================================================程序集不是命名空间哈
添加到其他工程pro1的引用中,
pro1再构建一个classA的派生类
同样可以访问c
这是怎么回事
protected internal: Access is limited to the current assembly or types derived from the containing class. 不过我试的结果和你一样,貌似只要派生了就有,跟assembly都没关系帮你顶下吧
并且能被同一个程序集的类所访问protected就只能被子类所访问(不管这个子类在哪个程序集里)
如果在同一程序集里面,不是子类的话仅有protected所修饰的成员就不能被访问