<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 功能強大 支持多語言、二開方便! 廣告
                # 處理 XML 文件(C# 編程指南) 編譯器為代碼中被標記為生成文檔的每一個構造生成一個 ID 字符串。(有關如何標記代碼的信息,請參見[建議的文檔注釋標記](https://msdn.microsoft.com/zh-cn/library/5ast78ax.aspx)。)ID 字符串唯一地標識構造。處理 XML 文件的程序可以使用 ID 字符串標識文檔應用于的相應 .NET Framework 元數據/反射項。 XML 文件不是代碼的分層表示形式,它是一個平面列表,其中的每一個元素都有一個生成的 ID。 編譯器在生成 ID 字符串時遵循下列規則: * 字符串中沒有空白。 * ID 字符串的第一部分通過單個字符后跟一個冒號來標識所標識成員的種類。使用下列成員類型: | 字符 | 說明 | | --- | --- | | N | 命名空間不可將文檔注釋添加到命名空間中,但是可以對它們進行 cref 引用(在受支持的位置)。 | | T | 類型:類、接口、結構、枚舉、委托 | | F | 字段 | | P | 屬性(包括索引程序或其他索引屬性) | | M | 方法(包括一些特殊方法,例如構造函數、運算符等) | | E | event | | ! | 錯誤字符串字符串的其余部分會提供有關此錯誤的信息。C# 編譯器為無法解析的鏈接生成錯誤信息。 | * 字符串的第二部分是項的完全限定名,從命名空間的根開始。項的名稱、其封閉類型和命名空間以句號分隔。如果項的名稱本身包含句號,則用哈希符號 ('#') 替換這些句號。假定任何項的名稱中都不直接存在哈希符號。例如,String 構造函數的完全限定名是“System.String.#ctor”。 * 對于屬性和方法,如果該方法帶參數,則將其后的參數列表括在括號中。如果沒有參數,則沒有括號。多個參數以逗號分隔。每個參數的編碼都直接遵循它在 .NET Framework 簽名中的編碼方法: * 基類型。常規類型(ELEMENT_TYPE_CLASS 或 ELEMENT_TYPE_VALUETYPE)表示為類型的完全限定名。 * 內部類型(例如,ELEMENT_TYPE_I4、ELEMENT_TYPE_OBJECT、ELEMENT_TYPE_STRING、ELEMENT_TYPE_TYPEDBYREF。和 ELEMENT_TYPE_VOID)表示為相應完全類型的完全限定名。例如,System.Int32 或 System.TypedReference。 * ELEMENT_TYPE_PTR 表示為“*”,在修改的類型之后。 * ELEMENT_TYPE_BYREF 表示為“@”,在修改的類型之后。 * ELEMENT_TYPE_PINNED 表示為“^”,在修改的類型之后。C# 編譯器永遠不會生成此結果。 * ELEMENT_TYPE_CMOD_REQ 表示為“|”和修飾符類的完全限定名,在修改的類型之后。C# 編譯器永遠不會生成此結果。 * ELEMENT_TYPE_CMOD_OPT 表示為“!”和修飾符類的完全限定名,在修改的類型之后。 * ELEMENT_TYPE_SZARRAY 表示為“[]”,在數組的元素類型之后。 * ELEMENT_TYPE_GENERICARRAY 表示為“[?]”,在數組的元素類型之后。C# 編譯器永遠不會生成此結果。 * ELEMENT_TYPE_ARRAY 表示為 [_lowerbound_:_size_,_lowerbound_:_size_],其中逗號數為秩 - 1,每一維的下限和大小(如果已知)用十進制表示。如果未指定下限及大小,它將完全被省略。如果省略了特定維的下限及大小,則“:”也將被省略。例如,以 1 作為下限并且未指定大小的二維數組是 [1:,1:]。 * ELEMENT_TYPE_FNPTR 表示為“=FUNC:_type_(_signature_)”,其中 _type_ 是返回類型,_signature_ 是方法的參數。如果沒有參數,則將省略括號。C# 編譯器永遠不會生成此結果。 不表示下列簽名組件,因為從不使用它們來區分重載方法: * 調用約定 * 返回類型 * ELEMENT_TYPE_SENTINEL * 僅對于轉換運算符(op_Implicit 和 op_Explicit),方法的返回值才被編碼為“~”,后跟返回類型,如上述編碼所示。 * 對于泛型類型,類型名稱后跟反勾號,再跟一個數字,指示泛型類型參數的個數。例如, 對于定義為 public class SampleClass&lt;T, U&gt; 的類型,&lt;member name="T:SampleClass`2"&gt; 是其標記。 對于接受泛型類型作為參數的方法,泛型類型參數被指定為數字前面加上反勾號(如 `0、`1)。表示類型泛型參數的數組表示法(從零開始)的每個數字。 ## 示例 下列示例顯示了如何生成類及其成員的 ID 字符串: ``` namespace N { /// <summary> /// Enter description here for class X. /// ID string generated is "T:N.X". /// </summary> public unsafe class X { /// <summary> /// Enter description here for the first constructor. /// ID string generated is "M:N.X.#ctor". /// </summary> public X() { } /// <summary> /// Enter description here for the second constructor. /// ID string generated is "M:N.X.#ctor(System.Int32)". /// </summary> /// <param name="i">Describe parameter.</param> public X(int i) { } /// <summary> /// Enter description here for field q. /// ID string generated is "F:N.X.q". /// </summary> public string q; /// <summary> /// Enter description for constant PI. /// ID string generated is "F:N.X.PI". /// </summary> public const double PI = 3.14; /// <summary> /// Enter description for method f. /// ID string generated is "M:N.X.f". /// </summary> /// <returns>Describe return value.</returns> public int f() { return 1; } /// <summary> /// Enter description for method bb. /// ID string generated is "M:N.X.bb(System.String,System.Int32@,System.Void*)". /// </summary> /// <param name="s">Describe parameter.</param> /// <param name="y">Describe parameter.</param> /// <param name="z">Describe parameter.</param> /// <returns>Describe return value.</returns> public int bb(string s, ref int y, void* z) { return 1; } /// <summary> /// Enter description for method gg. /// ID string generated is "M:N.X.gg(System.Int16[],System.Int32[0:,0:])". /// </summary> /// <param name="array1">Describe parameter.</param> /// <param name="array">Describe parameter.</param> /// <returns>Describe return value.</returns> public int gg(short[] array1, int[,] array) { return 0; } /// <summary> /// Enter description for operator. /// ID string generated is "M:N.X.op_Addition(N.X,N.X)". /// </summary> /// <param name="x">Describe parameter.</param> /// <param name="xx">Describe parameter.</param> /// <returns>Describe return value.</returns> public static X operator +(X x, X xx) { return x; } /// <summary> /// Enter description for property. /// ID string generated is "P:N.X.prop". /// </summary> public int prop { get { return 1; } set { } } /// <summary> /// Enter description for event. /// ID string generated is "E:N.X.d". /// </summary> public event D d; /// <summary> /// Enter description for property. /// ID string generated is "P:N.X.Item(System.String)". /// </summary> /// <param name="s">Describe parameter.</param> /// <returns></returns> public int this[string s] { get { return 1; } } /// <summary> /// Enter description for class Nested. /// ID string generated is "T:N.X.Nested". /// </summary> public class Nested { } /// <summary> /// Enter description for delegate. /// ID string generated is "T:N.X.D". /// </summary> /// <param name="i">Describe parameter.</param> public delegate void D(int i); /// <summary> /// Enter description for operator. /// ID string generated is "M:N.X.op_Explicit(N.X)~System.Int32". /// </summary> /// <param name="x">Describe parameter.</param> /// <returns>Describe return value.</returns> public static explicit operator int(X x) { return 1; } } } ``` ## 請參閱 [C# 編程指南](https://msdn.microsoft.com/zh-cn/library/67ef8sbd.aspx) [/doc (C# Compiler Options)](https://msdn.microsoft.com/zh-cn/library/3260k4x7.aspx) [XML 文檔注釋(C# 編程指南)](https://msdn.microsoft.com/zh-cn/library/b2s063f7.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>

                              哎呀哎呀视频在线观看