我是C#的新手并且正在阅读this
protected
:仅限派生类型或相同类型的成员。internal
:只有同一个程序集中的代码。也可以是对象外部的代码,只要它在同一个程序集中。 (类型的默认值)protected internal
:来自派生类型的代码或同一程序集中的代码。受保护的OR内部组合。什么是protected internal
? internal
是否也允许派生类型访问变量?
什么是集会?
答案 0 :(得分:5)
程序集是编译代码时获得的.dll或.exe文件。如果Visual Studio中有多个项目,则它们将编译为不同的程序集。
有关详细信息,请参阅MSDN上的Assemblies。
protected internal
表示可以从同一程序集中的子类和类访问它。它是一个更可见的访问修饰符,而不仅仅是protected
或internal
。如果要将类成员限制为仅在同一程序集中的派生类,则必须将类本身标记为internal
,将其成员标记为protected
。
有关详细信息,请参阅Access Modifiers (C# Programming Guide)。
答案 1 :(得分:1)
“内部是否也允许派生类型访问变量?”
不,如果他们在不同的集会中,那就不是了。由于程序集本质上是一个CLR(公共语言运行库)DLL或EXE。您可以将其大致视为“库”。