内部说明符的工作方式

本文关键字:方式 工作 说明符 内部 | 更新日期: 2023-09-27 18:28:06

我只是试着在我的BaseClass中使用Internal,MSDN告诉我,Internal class不能在其他方法或类中实例化并产生错误,但为什么我仍然可以在方法Main()中实例化BaseClass

TestAccess.cs

internal class BaseClass 
{
   public static int intM = 0;
}
class TestAccess 
{
   static void Main() 
   {
      BaseClass myBase = new BaseClass();   // CS0122 This should be an error because BaseClass is Internal class.
   }
}

内部说明符的工作方式

您误解了MSDN。internal表示类仅在包含它的程序集中可见。你发布的例子是完全正确的。

MSDN表示,

引用具有内部访问权限的类型或成员是错误的在定义它的程序集外部

(强调矿)

您误解了intenral的含义。可以从同一程序集中的任何文件(即项目或DLL)访问internal项。在同一个文件中有两个类肯定在同一程序集中。

来自MSDN:

内部关键字是类型和类型成员的访问修饰符。内部类型或成员只能在组件

Internal仅用于在同一程序集中访问。您不会因为在同一程序集中(在本例中为同一文件)而收到错误。

如果internal class BaseClass在另一个项目中,您将无法访问它。