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

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                # 泛型類型參數(C# 編程指南) 在泛型類型或方法定義中,類型參數是客戶端在實例化泛型類型的變量時指定的特定類型的占位符。泛型類(如 [泛型介紹(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/0x6a29h6.aspx) 中列出的 GenericList&lt;T&gt;)不可以像這樣使用,因為它實際上并不是一個類型,而更像是一個類型的藍圖。若要使用 GenericList&lt;T&gt;,客戶端代碼必須通過指定尖括號中的類型參數來聲明和實例化構造類型。此特定類的類型參數可以是編譯器識別的任何類型。可以創建任意數目的構造類型實例,每個實例使用不同的類型參數,如下所示: ``` GenericList<float> list1 = new GenericList<float>(); GenericList<ExampleClass> list2 = new GenericList<ExampleClass>(); GenericList<ExampleStruct> list3 = new GenericList<ExampleStruct>(); ``` 在每個 GenericList&lt;T&gt; 實例中,類中出現的每個 T 都會在運行時替換為相應的類型參數。通過這種替換方式,我們使用一個類定義創建了三個獨立的類型安全的有效對象。有關 CLR 如何執行此替換的更多信息,請參見[運行時中的泛型(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/f4a6ta2h.aspx)。 ## 類型參數命名準則 * 務必使用描述性名稱命名泛型類型參數,除非單個字母名稱完全可以讓人了解它表示的含義,而描述性名稱不會有更多的意義。 ``` public interface ISessionChannel&lt;TSession&gt; { /*...*/ } public delegate TOutput Converter&lt;TInput, TOutput&gt;(TInput from); public class List&lt;T&gt; { /*...*/ } ``` * 考慮使用 T 作為具有單個字母類型參數的類型的類型參數名。 ``` public int IComparer&lt;T&gt;() { return 0; } public delegate bool Predicate&lt;T&gt;(T item); public struct Nullable&lt;T&gt; where T : struct { /*...*/ } ``` * 務必將“T”作為描述性類型參數名的前綴。 ``` public interface ISessionChannel&lt;TSession&gt; { TSession Session { get; } } ``` * 考慮在參數名中指示對此類型參數的約束。例如,可以將帶有 ISession 約束的參數命名為 TSession。 ## 請參閱 [System.Collections.Generic](https://msdn.microsoft.com/zh-cn/library/system.collections.generic.aspx) [C# 編程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [泛型(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/512aeb7t.aspx) [C++ 模板和 C# 泛型之間的區別(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/c6cyy67b.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>

                              哎呀哎呀视频在线观看