内部说明符如何工作

时间:2014-10-28 01:28:22

标签: c# internal

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

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.
   }
}

3 个答案:

答案 0 :(得分:2)

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

MSDN说,

  

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

(强调我的)

答案 1 :(得分:1)

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

来自MSDN

  

internal关键字是类型和类型成员的访问修饰符。   内部类型或成员只能在同一文件中访问   装配

答案 2 :(得分:1)

Internal仅适用于同一程序集中的访问权限。您不会收到错误,因为您在同一个程序集中(在这种情况下是同一个文件)。

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