1. 程式人生 > >C#中的名稱空間namespace與Java中的包package之間的區別

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