C#中的命名空间namespace与Java中的包package之间的区别

Java

包被用来组织文件或公共类型以避免类型冲突。包结构可以映射到文件系统。

System.Security.Cryptography.AsymmetricAlgorithm aa;

可能被替换:

import System.Security.Crypography; 
class xxx { ... AsymmetricAlgorithm aa; 

软件包没有别名。你必须使用导入语句或完全限定名称来提及特定的类型。

package N1.N2;
    class A {} class B {} 

要么

package N1.N2;
   class A {} 

另一个源文件:

package N1.N2;
   class B {} 

包不能嵌套。一个源文件只能有一个包语句。

C#

命名空间被用来组织程序,既作为一个程序的“内部”组织系统,也作为一个“外部”组织系统。

System.Security.Cryptography.AsymmetricAlgorithm aa;

可能被替换:

using System.Security.Crypography; 
AsymmetricAlgorithm aa;

或者,可以指定命名空间的别名,例如

using myAlias = System.Security.Crypography; 

然后参考该类

myAlias.AsymmetricAlgorithm 

namespace N1.N2
{
    class A {} class B {} } 

要么

namespace N1
{
    namespace N2
    {
        class A {} class B {} } }

from: https://cloud.tencent.com/developer/ask/35308
http://www.javacamp.org/javavscsharp/namespace.html

猜你喜欢

转载自www.cnblogs.com/GarfieldEr007/p/10111316.html