我有个类库 A.dll,里面有3个在同一namespace下的类,abc1.cs,abc2.cs,abc3.cs。其中 abc2.cs 和 abc3.cs 是public的,但我不想外部可以看到或者调用到 abc1.cs,因为它只是给abc2.cs和abc3.cs用的,请问该怎么做?

解决方案 »

  1.   

    声明了 internal 后,说访问性不一致:错误 1 可访问性不一致: 基类“XXXX.XX.abc1”比类“XXXX.XX.abc2”的可访问性低
      

  2.   

    我的 abc1.cs 是 internal 的,abc2.cs 是 public 的
      

  3.   

    错误 1 可访问性不一致: 基类“XXXX.XX.abc1”比类“XXXX.XX.abc2”的可访问性低 
    这个说的比较明白了。Public是比internal更高一级的访问级别。
    public 可以任意访问,private只能被本类访问,protected只能被本类及其子类访问,internal被本程序集所有的类访问,这里既然abc1.cs 这个基类都不能被外部访问,那他的子类为什么还要声明为public 的呢?
      

  4.   

    错误 1 可访问性不一致: 基类“XXXX.XX.abc1”比类“XXXX.XX.abc2”的可访问性低  
    这个说的比较明白了。Public是比internal更高一级的访问级别。 
    public 可以任意访问,private只能被本类访问,protected只能被本类及其子类访问,internal被本程序集所有的类访问,这里既然abc1.cs 这个基类都不能被外部访问,那他的子类为什么还要声明为public 的呢?
    -----------------------------
    abc1.cs 里有个属性 protected string GetCurrentDateTime ,而 abc2.cs 和其他类都会将这个属性作为自己的属性 public 给外部使用。所以,我的想法是,abc2.cs 是 public 的,但 abc1.cs 是没有给外部实例化和使用的必要的,所以我不想它 public。