天天看點

Unity中C# 命名空間C# 命名空間(Namespace)

C# 命名空間(Namespace)

摘選一些關于命名空間的定義,大家共同參考哈

命名空間的設計目的是提供一種讓一組名稱與其他名稱分隔開的方式。在一個命名空間中聲明的類的名稱與另一個命名空間中聲明的相同的類的名稱不沖突。

定義命名空間

命名空間的定義是以關鍵字 namespace 開始,後跟命名空間的名稱,如下所示:

namespace namespace_name

{

   // 代碼聲明

}

為了調用支援命名空間版本的函數或變量,會把命名空間的名稱置于前面,如下所示:

namespace_name.item_name;      

下面的程式示範了命名空間的用法:

執行個體

using System;

namespace first_space

{

   class namespace_cl

   {

      public void func()

      {

         Console.WriteLine("Inside first_space");

      }

   }

}

namespace second_space

{

   class namespace_cl

   {

      public void func()

      {

         Console.WriteLine("Inside second_space");

      }

   }

}   

class TestClass

{

   static void Main(string[] args)

   {

      first_space.namespace_cl fc = new first_space.namespace_cl();

      second_space.namespace_cl sc = new second_space.namespace_cl();

      fc.func();

      sc.func();

      Console.ReadKey();

   }

}

當上面的代碼被編譯和執行時,它會産生下列結果:

Inside first_space
Inside second_space      

using 關鍵字

using 關鍵字表明程式使用的是給定命名空間中的名稱。例如,我們在程式中使用 System 命名空間,其中定義了類 Console。我們可以隻寫:

Console.WriteLine ("Hello there");      

我們可以寫完全限定名稱,如下:

System.Console.WriteLine("Hello there");      

您也可以使用 using 命名空間指令,這樣在使用的時候就不用在前面加上命名空間名稱。該指令告訴編譯器随後的代碼使用了指定命名空間中的名稱。下面的代碼示範了命名空間的應用。

讓我們使用 using 指定重寫上面的執行個體:

執行個體

using System;

using first_space;

using second_space;

namespace first_space

{

   class abc

   {

      public void func()

      {

         Console.WriteLine("Inside first_space");

      }

   }

}

namespace second_space

{

   class efg

   {

      public void func()

      {

         Console.WriteLine("Inside second_space");

      }

   }

}   

class TestClass

{

   static void Main(string[] args)

   {

      abc fc = new abc();

      efg sc = new efg();

      fc.func();

      sc.func();

      Console.ReadKey();

   }

}

當上面的代碼被編譯和執行時,它會産生下列結果:

Inside first_space
Inside second_space      

嵌套命名空間

命名空間可以被嵌套,即您可以在一個命名空間内定義另一個命名空間,如下所示:

namespace namespace_name1 
{
   // 代碼聲明
   namespace namespace_name2 
   {
     // 代碼聲明
   }
}      

您可以使用點(.)運算符通路嵌套的命名空間的成員,如下所示:

執行個體

using System;

using SomeNameSpace;

using SomeNameSpace.Nested;

namespace SomeNameSpace

{

    public class MyClass 

    {

        static void Main() 

        {

            Console.WriteLine("In SomeNameSpace");

            Nested.NestedNameSpaceClass.SayHello();

        }

    }

    // 内嵌命名空間

    namespace Nested   

    {

        public class NestedNameSpaceClass 

        {

            public static void SayHello() 

            {

                Console.WriteLine("In Nested");

            }

        }

    }

}

當上面的代碼被編譯和執行時,它會産生下列結果:

In SomeNameSpace
In Nested