internal 是程序集内部能访问,
public 程诹集外也能访问.啥是程序集的内和外,两个不同的名字空间,算不算? 谢谢!..

解决方案 »

  1.   

    跟命名空间无关。internal 可以在dll、exe 内部使用,public 可以被别的dll、exe 调用。
      

  2.   

    简单地说,一个项目就是一个程序集。命名空间同程序集没有关系,通常的做法是,一个项目(程序集)在一个命名空间里,当然其它的项目也可以在这个命名空间里。刚才我作了一个例子,在一个项目里(命名空间是MyPlay.DAL),增加一个类:namespace MyPlay.xxx
    {
        public class abc
        {
            private void aaa(){}
            public void bbb(){}
            protected void ccc() { }
            internal void ddd() { }    }
    }在相同的项目里的其它文件里,调用abc这个类,可以看到它的aaa()和ddd()方法,不管它的命名空间是DAL还是xxx(当然不同命名空间的在类前边加上空间名称)。而在其它的程序集中,尽管添加了引用,也只能看到aaa()。
      

  3.   

    我理解的程序集就是exe或者dll,程序集外 就是DLL1工程中添加了对Dll2的引用,则Dll2中标识为internal的方法在DLL1中是不可见的
      

  4.   

    都是修饰符。internal在本身程序集里是可见的,但在别的程序集不可见!比如通常使用的第三方类库里面有很多internal的类,这些类用来完善这个类库的功能,但对用户又是没有必要的