如题。

解决方案 »

  1.   

    建议看看访问修饰符见过public没放在一样的位置 
      

  2.   

    internal 关键字是类型和类型成员的访问修饰符,内部成员只有在同一程序集中的文件内才是可访问的
    internal 可访问域限定于类所在的程序内
      

  3.   

    错误,是同一程序集(Assembly)...去看MSDN吧...
      

  4.   

    http://msdn.microsoft.com/zh-cn/library/7c5ka91b.aspx
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/
      

  5.   

    同一程序集可以访问类不过不写访问修饰符 默认就是internal
      

  6.   

    都被别人讲完了
    我就讲个通俗点的,就是同一个dll或者exe中的。
    注意不是同一命名空间,不要被误导。
    我不同程序集同样可以定义相同命名空间。
      

  7.   

    如果程序集上有属性:
    // 可以写在  AssemblyInfo.cs 中啊
    [assembly: InternalsVisibleTo("assembly.file")]那么, 本程序集中的 internal 也可以被程序集 assembly.file.dll ( or assembly.file.exe) 中的类访问.
      

  8.   

    看下面的MSDN解说。
    总得来说和10楼的朋友说的差不多。internal(C# 参考)
    internal 关键字是类型和类型成员的访问修饰符。只有在同一程序集的文件中,内部类型或成员才是可访问的,如下例所示:
    public class BaseClass 
    {
        // Only accessible within the same assembly
        internal static int x = 0;
    }有关 internal 与其他访问修饰符的比较,请参见可访问性级别和访问修饰符(C# 编程指南)。有关程序集的更多信息,请参见程序集和全局程序集缓存(C# 编程指南):内部访问通常用于基于组件的开发,因为它使一组组件能够以私有方式进行合作,而不必向应用程序代码的其余部分公开。例如,用于生成图形用户界面的框架可以提供“控件”类和“窗体”类,这些类通过使用具有内部访问能力的成员进行合作。由于这些成员是内部的,它们不向正在使用框架的代码公开。从定义具有内部访问能力的类型或成员的程序集外部引用该类型或成员是错误的。注意 尽管不能用 C# 重写 internalvirtual 方法,但可以用某些语言(如使用 Ilasm.exe 的文本 Microsoft 中间语言 (MSIL))重写它。 示例 该示例包含两个文件:Assembly1.cs 和 Assembly2.cs。第一个文件包含内部基类 BaseClass。在第二个文件中,实例化 BaseClass 的尝试将产生错误。
    // Assembly1.cs
    // compile with: /target:library
    internal class BaseClass 
    {
       public static int intM = 0;
    }
    // Assembly1_a.cs
    // compile with: /reference:Assembly1.dll
    class TestAccess 
    {
       static void Main() 
       {
          BaseClass myBase = new BaseClass();   // CS0122
       }
    }在此示例中,使用与示例 1 中所用的文件相同的文件,并将 BaseClass 的可访问性级别更改为 public。还将成员 IntM 的可访问性级别更改为 internal。在此例中,您可以实例化类,但不能访问内部成员。
    // Assembly2.cs
    // compile with: /target:library
    public class BaseClass 
    {
       internal static int intM = 0;
    }
    // Assembly2_a.cs
    // compile with: /reference:Assembly1.dll
    public class TestAccess 
    {
       static void Main() 
       {
          BaseClass myBase = new BaseClass();   // Ok.
          BaseClass.intM = 444;    // CS0117
       }
    }
      

  9.   

    说错了。不是10楼的朋友,是14楼的。14楼的朋友说的和MSDN的差不多。差点就给错分了。
      

  10.   

    同一程序集(Assembly),可访问