<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 命名空間 > 原文: [https://zetcode.com/lang/csharp/namespaces/](https://zetcode.com/lang/csharp/namespaces/) 在 C# 教程的這一部分中,我們介紹了名稱空間。 命名空間用于在最高邏輯級別上組織代碼。 他們對公開給其他程序和應用的編程元素進行分類和呈現。 在一個名稱空間內,我們可以聲明另一個名稱空間,一個類,一個接口,一個結構,一個枚舉或一個委托。 我們無法定義諸如屬性,變量和事件之類的項目。 這些項目必須在諸如結構或類之類的容器中聲明。 當使用大量對象(例如類庫)時,命名空間可防止歧義并簡化引用。 命名空間在程序集中組織對象。 程序集是 CLR 應用的可重用,可版本控制和自描述的構建塊。 程序集可以包含多個名稱空間。 命名空間可以包含其他命名空間。 程序集提供了物理代碼分組的基本單元。 命名空間提供了邏輯代碼分組的基本單位。 ## C# 創建名稱空間 `namespace`關鍵字用于在 C# 中聲明一個名稱空間。 命名空間的名稱必須是有效的 C# 標識符名稱。 命名空間用`.`運算符定界。 `using`指令消除了為每個類指定名稱空間名稱的要求。 ## C# 內置名稱空間 內置庫在名稱空間內組織。 `Program.cs` ```cs public class Program { static void Main() { System.Console.WriteLine("Simple namespace example"); } } ``` 例如,`Console`類在`System`名稱空間中可用。 要調用`Console`類的靜態`WriteLine()`方法,我們使用其全限定名。 完全限定名稱是對象引用,該引用以定義對象的名稱空間的名稱為前綴。 `Program.cs` ```cs using System; public class Program { static void Main() { Console.WriteLine("Simple namespace example"); } } ``` 通過`using`語句,我們將`System`命名空間包含到程序中。 現在我們可以調用`Console.WriteLine()`而不顯式指定`System`。 ## C# 共享名稱空間 在下面的代碼中,我們有兩個共享相同名稱空間的文件。 `Counter.cs` ```cs using System; namespace Sharing { class Counter { public int x = 0; public void Inc() { x += 100; Console.WriteLine(x); } } } ``` 我們有一個`Sharing`命名空間。 在命名空間中,我們有一個`Counter`類。 ```cs namespace Sharing { ... } ``` 我們聲明一個名為`Sharing`的命名空間。 該代碼位于`Sharing`名稱空間的大括號內。 `Program.cs` ```cs namespace Sharing { public class Program { static void Main() { var counter = new Counter(); counter.Inc(); counter.Inc(); } } } ``` 在`Program`類中,我們使用上一個文件中的`Counter`類。 我們調用其`Inc()`方法。 ```cs namespace Sharing { ... ``` 我們在同一個命名空間中工作。 ```cs var counter = new Counter(); counter.Inc(); counter.Inc(); ``` 我們創建`Counter`類的實例。 我們兩次調用它的`Inc()`方法。 因為我們使用相同名稱空間的對象,所以不需要顯式指定其名稱。 ```cs $ dotnet run 100 200 ``` 這是示例輸出。 ## C# 不同的名稱空間 以下代碼示例具有兩個不同的名稱空間。 我們使用`using`關鍵字從其他名稱空間導入元素。 `Basic.cs` ```cs namespace Mathematical { public class Basic { public static double PI = 3.141592653589; public static double GetPi() { return PI; } } } ``` 在`Basic`類中,我們定義了`PI`常量和`GetPi()`方法。 `Basic`類在`Mathematical`命名空間中定義。 `Program.cs` ```cs using System; using Mathematical; namespace Distinct { public class Program { static void Main() { Console.WriteLine(Basic.PI); Console.WriteLine(Basic.GetPi()); Console.WriteLine(Mathematical.Basic.PI); Console.WriteLine(Mathematical.Basic.PI); } } } ``` 在此文件中,我們使用`MyMath`命名空間中的元素。 ```cs using Mathematical; ``` 我們將元素從`MyMath`命名空間導入到我們的命名空間中。 ```cs Console.WriteLine(Basic.PI) Console.WriteLine(Basic.GetPI()) ``` 現在我們可以使用這些元素。 在我們的例子中,它是`Basic`類。 ```cs Console.WriteLine(Mathematical.Basic.PI); Console.WriteLine(Mathematical.Basic.PI); ``` 訪問元素的另一種方法是指定元素的全限定名稱。 ```cs $ dotnet run 3.141592653589 3.141592653589 3.141592653589 3.141592653589 ``` 這是輸出。 ## C# 根名稱空間 根名稱空間是 .NET Framework 庫的主空間。 有人可能會創建與 .NET Framework 中的類型或名稱空間沖突的類型或名稱空間。 在這種情況下,我們可以使用`global::`前綴引用根名稱空間。 `Program.cs` ```cs namespace ZetCode { class System { public override string ToString() { return "This is System class"; } } public class Program { static void Main() { var sys = new System(); global::System.Console.WriteLine(sys); } } } ``` 在`ZetCode`命名空間中,我們創建一個`System`類,該類與.NET Framework 中的類沖突。 ```cs var sys = new System(); ``` 在這里,我們從`ZetCode`命名空間引用`System`類。 ```cs global::System.Console.WriteLine(sys); ``` 使用`global::`前綴,我們指向根名稱空間的`System`類。 ## C# 默認名稱空間 根名稱空間也是 C# 程序的默認名稱空間。 命名空間中未包含的元素將添加到未命名的默認命名空間中。 `Program.cs` ```cs using System; struct Book { public override string ToString() { return "Book struct in a default namespace"; } } namespace MainProgram { struct Book { public override string ToString() { return "Book struct in a MainProgram namespace"; } } public class Program { static void Main() { Book book1; global::Book book2; Console.WriteLine(book1); Console.WriteLine(book2); } } } ``` 我們有兩個`Book`結構; 一個在`MainProgram`名稱空間中定義,另一個在此名稱空間之外定義。 ```cs struct Book { public override string ToString() { return "Book struct in a default namespace"; } } ``` 此`Book`結構在名為`MainProgram`的自定義命名空間之外定義。 它屬于默認名稱空間。 ```cs Book book1; ``` 我們指的是`MainProgram`名稱空間內定義的結構。 ```cs global::Book book2; ``` 使用`global::`前綴,我們指向`MainProgram`命名空間之外定義的結構。 ```cs $ dotnet run Book struct in a MainProgram namespace Book struct in a default namespace ``` 這是程序的輸出。 ## C# 名稱空間別名 `using`關鍵字可用于為名稱空間創建別名。 使用嵌套的名稱空間,全限定名稱可能會變長。 我們可以通過創建別名來縮短它們。 `Program.cs` ```cs namespace ZetCode { namespace Items { class Book { public override string ToString() { return "This is a book"; } } } } namespace MainProgram { using ZIB = ZetCode.Items.Book; public class Aliases { static void Main() { ZetCode.Items.Book book = new ZetCode.Items.Book(); ZIB book2 = new ZIB(); System.Console.WriteLine(book); System.Console.WriteLine(book2); } } } ``` 在示例中,我們為`Book`類創建了一個別名,該別名被兩個名稱空間包圍。 ```cs namespace ZetCode { namespace Items { class Book { ... } } } ``` 可以將一個名稱空間嵌套到另一個名稱空間中。 `Book`類的完全限定名稱為`ZetCode.Items.Book`。 ```cs using ZIB = ZetCode.Items.Book; ``` `using`關鍵字為全限定名`ZetCode.Items.Book`創建為`ZIB`別名。 ```cs ZetCode.Items.Book book = new ZetCode.Items.Book(); ZIB book2 = new ZIB(); ``` 我們使用這兩個名稱來創建書籍實例。 C# 教程的這一部分專門用于名稱空間。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看