<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                # 使用命名空間(C# 編程指南) 在 C# 程序中,通過兩種方式來大量使用命名空間。首先,.NET Framework 類使用命名空間來組織它的眾多類。其次,在較大的編程項目中,聲明自己的命名空間可以幫助控制類和方法名的范圍。 ## 訪問命名空間 大多數 C# 應用程序從一個 **using** 指令節開始。該節列出應用程序將會頻繁使用的命名空間,避免程序員在每次使用其中包含的方法時都要指定完全限定的名稱。 例如,通過在程序開頭包括行: ``` using System; ``` 程序員可以使用代碼: ``` Console.WriteLine("Hello, World!"); ``` 而不是: ``` System.Console.WriteLine("Hello, World!"); ``` ## 命名空間別名 [using 指令(C# 參考)](https://msdn.microsoft.com/zh-cn/library/sf0df423.aspx)還可用于創建[命名空間](https://msdn.microsoft.com/zh-cn/library/z2kcy19k.aspx)的別名。例如,如果使用包含嵌套命名空間的以前編寫的命名空間,您可能希望聲明一個別名來提供引用特定命名空間的簡寫方法,如以下示例中所示: ``` using Co = Company.Proj.Nested; // define an alias to represent a namespace ``` ## 使用命名空間來控制范圍 **namespace** 關鍵字用于聲明一個范圍。在項目中創建范圍的能力有助于組織代碼,并可讓您創建全局唯一的類型。在下面的示例中,名為 SampleClass 的類在兩個命名空間中定義,其中一個命名空間嵌套在另一個之內。 [. 運算符(C# 參考)](https://msdn.microsoft.com/zh-cn/library/6zhxzbds.aspx)用于區分所調用的方法。 ``` namespace SampleNamespace { class SampleClass { public void SampleMethod() { System.Console.WriteLine( "SampleMethod inside SampleNamespace"); } } // Create a nested namespace, and define another class. namespace NestedNamespace { class SampleClass { public void SampleMethod() { System.Console.WriteLine( "SampleMethod inside NestedNamespace"); } } } class Program { static void Main(string[] args) { // Displays "SampleMethod inside SampleNamespace." SampleClass outer = new SampleClass(); outer.SampleMethod(); // Displays "SampleMethod inside SampleNamespace." SampleNamespace.SampleClass outer2 = new SampleNamespace.SampleClass(); outer2.SampleMethod(); // Displays "SampleMethod inside NestedNamespace." NestedNamespace.SampleClass inner = new NestedNamespace.SampleClass(); inner.SampleMethod(); } } } ``` ## 完全限定名 命名空間和類型的名稱必須唯一,由指示邏輯層次結構的完全限定名描述。例如,語句 A.B 表示 A 是命名空間或類型的名稱,而 B 則嵌套在其中。 下面的示例中有嵌套的類和命名空間。在每個實體的后面,需要完全限定名作為注釋。 ``` namespace N1 // N1 { class C1 // N1.C1 { class C2 // N1.C1.C2 { } } namespace N2 // N1.N2 { class C2 // N1.N2.C2 { } } } ``` 在以上代碼段中: * 命名空間 N1 是全局命名空間的成員。它的完全限定名是 N1。 * 命名空間 N2 是命名空間 N1 的成員。它的完全限定名是 N1.N2。 * 類 C1 是 N1 的成員。它的完全限定名是 N1.C1。 * 在此代碼中使用了兩次 C2 類名。但是,完全限定名是唯一的。 C2 的第一個實例是在 C1 中聲明的;因此,其完全限定名為:N1.C1.C2。 C2 的第二個實例是在命名空間 N2 中聲明的;因此,其完全限定名為:N1.N2.C2。 使用以上代碼段,可以用以下方法將新的類成員 C3 添加到命名空間 N1.N2 內: ``` namespace N1.N2 { class C3 // N1.N2.C3 { } } ``` 一般情況下,應使用 **::** 來引用命名空間別名或使用 **global::** 來引用全局命名空間,并使用 **.** 來限定類型或成員。 與引用類型而不是命名空間的別名一起使用 **::** 是錯誤的。例如: ``` using Alias = System.Console; ``` ``` class TestClass { static void Main() { // Error //Alias::WriteLine("Hi"); // OK Alias.WriteLine("Hi"); } } ``` 記住單詞 **global** 不是預定義的別名,因此 global.X 沒有任何特殊的含義。僅當與 **::** 一起使用時,它才獲得特殊的含義。 定義名為 global 的別名會生成編譯器警告 CS0440,因為 **global::** 始終引用全局命名空間而不是別名。例如,下面的行將產生警告: ``` using global = System.Collections; // Warning ``` 最好將 **::** 與別名一起使用,這樣可以避免意外引入其他類型。以下面的代碼為例: ``` using Alias = System; ``` ``` namespace Library { public class C : Alias.Exception { } } ``` 這樣做可行,但是如果接著引入一個名為 Alias 的類型,則 Alias. 將改為綁定到該類型。使用 Alias::Exception 可以確保 Alias 被當作命名空間別名,而不會被誤認為類型。 有關 **global** 別名的更多信息,請參見主題[如何:使用全局命名空間別名(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/c3ay4x3d.aspx)。 ## 請參閱 [C# 編程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [命名空間(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/0d941h9d.aspx) [命名空間關鍵字(C# 參考)](https://msdn.microsoft.com/zh-cn/library/cxtk6h5e.aspx) [. 運算符(C# 參考)](https://msdn.microsoft.com/zh-cn/library/6zhxzbds.aspx) [:: 運算符(C# 參考)](https://msdn.microsoft.com/zh-cn/library/htccxtad.aspx) [extern(C# 參考)](https://msdn.microsoft.com/zh-cn/library/e59b22c5.aspx)
                  <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>

                              哎呀哎呀视频在线观看