C#中的 命名空间感觉取自于C++ 中的命名空间,有点类似于C#中的package,只不过java中的package对应于目录结构,而C#中的命名空间其名可以比较随意,个人感觉java中的package机制比C#中的名字空间要严谨和简洁的多。
访问控制符方面,C#中有public,private,protected,internal和protected internal,而java中为public,private,protected,和缺省的(default)。
注意 c#的class里的成员(变量或者函数) 的缺省访问控制符是private,这点和C++一直,但是和java不同,java的类里面的成员的缺省的访问控制符是default.
protected访问控制符规定成员或者方法仅对子类开放(C#),而java里的protected意味着在同一个包里或者子类里是可见的
internal访问控制符规定成员或者方法仅对命名空间范围内的开放,internal意味着仅仅在同一个包里是可见的