声明的可访问性 意义 
public 访问不受限制。 
protected 访问仅限于包含类或从包含类派生的类型。 
internal 访问仅限于当前程序集。 
protected internal 访问仅限于从包含类派生的当前程序集或类型。 
private 访问仅限于包含类型。 

解决方案 »

  1.   

    刚才做了两个测试。
    测试一:
    建立三个工程,A,B,C。B引用A,在B中继承A工程中的一个类,并且实现自己的方法,没有问题。使用private new string Method2()方法隐藏了A中的Method2()方法。如果不实现,系统调用A.Method2()方法。
    测试二:
    建立一个工程,A,B,C三个文件,如上文所示。在B中使用private new string Method2()方法,但是无法隐藏A类的该方法,系统执行A.
    疑问:
    1。在测试一中,为什么系统提示需要将A工程引用加入?C中引用的是B工程,有什么方法可以将A.dll打包进B中,也就是说B只需要提供一个dll给C就可以。我说的是在IDE环境中。
    2。在测试二中,如何可以使C也不执行A.method2()方法?前提是A.method2() is public type.
      

  2.   

    你可以在B类中重载Method2,当调用Methods是抛出异常。这样C就不能调用methods了
    当然,对C来说Method2依旧是可见,只是不可用。
      

  3.   

    如果你在工程了引用了B,那么引用B的工程都要引用A,因为B引用了A