Aracılığıyla paylaş


xml dosyası (c Programlama Kılavuzu #) işleme

Derleyici kodunuzda belgeleri oluşturmak için etiketli her yapı için bir kimlik dizesi oluşturur. (Kodunuz etiket hakkında daha fazla bilgi için bkz: Belgeleme yorumları için önerilen etiketleri.) Kimlik dizesi yapýsý benzersiz olarak tanımlar. xml dosyası işletilsin program kimliği dizesi karşılık gelen tanımlamak için kullanabilirsiniz.Belgelere uygulanır net Framework meta veri/yansıtma madde.

xml dosyası kodunuzu hiyerarşik bir gösterimini değil; her öğe için oluşturulan bir kimliği olan düz bir listedir.

Kimliği dizesi oluşturduğunda, derleyici aşağıdaki kurallar gözlemliyorsa:

  • Hiçbir boşluk içinde bir dizedir.

  • Kimlik dizesi ilk bölümü, üste tek bir karakter olarak tanımlanmasını üye türünü tanımlar. Aşağıdaki üye türleri kullanılır:

    Karakter

    Description

    N

    ad alanı

    Bir ad alanına belgelere açıklama ekleyemezsiniz, ancak bunları cref başvuru yaptığınız desteklenen burada.

    T

    türü: sınıf, arabirim, yapı, enum, temsilci

    F

    alan

    P

    (dizinleyiciler veya dizinlenmiş diğer özellikleri de dahil olmak üzere) özelliği

    M

    (Kurucular, işleçler ve diğerleri gibi özel yöntemler de dahil olmak üzere) yöntemi

    E

    Olay

    !

    Hata dizesi

    Dize geri kalanı hata hakkında bilgi sağlar. C# derleyicisi, çözülemeyen bağlantılar için hata bilgileri oluşturur.

  • Dizenin ikinci bölümü, ad alanı kökünde başlangıç öğesinin tam adıdır. Madde, kendi kapsayan türlerinden ve ad alanı adı noktayla ayrılmış. Öğenin adını nokta varsa, bunlar karma-işareti ('#') değiştirilir. Hiçbir öğenin adını doğrudan bir karma işareti olduğunu kabul edilir. Örneğin, dize kurucu tam adı "System.String.#ctor" olacaktır.

  • Yöntem bağımsız değişkenleri, özellikleri ve yöntemleri, ayraç içinde bağımsız değişken listesi aşağıdadır. Hiçbir bağımsız değişken varsa, parantez içinde yok yok. Bağımsız değişkenleri virgüllerle ayrılır. Her bağımsız kodlama doğrudan nasıl olarak kodlanır izleyen bir.net Framework imzası:

    • Temel türler. Normal türleri (element_type_class veya element_type_valuetype) tam tür adı olarak temsil edilir.

    • İçsel türleri (örneğin, ELEMENT_TYPE_I4, element_type_object, ELEMENT_TYPE_STRING, element_type_typedbyref. ve ELEMENT_TYPE_VOID) tam karşılık gelen tam tür adı olarak temsil edilir. Örneğin, System.Int32 veya System.TypedReference.

    • element_type_ptr şeklinde temsil bir ' *' değiştirilmiş türü aşağıdaki.

    • Olarak ta element_type_byref temsil bir '@' değiştirilmiş türü aşağıdaki.

    • Olarak ELEMENT_TYPE_PINNED temsil bir ' ^' değiştirilmiş türü aşağıdaki. C# derleyicisi, hiçbir zaman bu oluşturur.

    • Olarak element_type_cmod_req temsil bir ' |' ve değiştirilmiş türü aşağıdaki değiştirici sınıf tam nitelikli adını. C# derleyicisi, hiçbir zaman bu oluşturur.

    • Olarak element_type_cmod_opt temsil bir '!' ve değiştirilmiş türü aşağıdaki değiştirici sınıf tam nitelikli adını.

    • element_type_szarray ["dizi öğesi türü aşağıdaki]" temsil edilir.

    • ELEMENT_TYPE_GENERICARRAY "?" gösterilen dizi öğesi türü aşağıdaki. C# derleyicisi, hiçbir zaman bu oluşturur.

    • Olarak element_type_array temsil lowerbound:size,lowerbound:size Burada sayıda virgül rank - 1 ve alt sınırları ve her boyutun büyüklüğü biliniyorsa, ondalık değerleri gösterilir. Bir alt sınır veya boyutu belirtilmezse, basitçe atlanır. Alt sınır ve belirli bir boyut için boyut belirtilmezse, ':' de kullanılmaz. Örneğin, alt sınır ve belirsiz boyutları olarak 1 ile 2 boyutlu bir dizi olan [1:, 1:].

    • element_type_fnptr şeklinde temsil "func =:type(imza)", nerede type dönüş türü ve imza olan yöntemin değişkendir. Hiçbir bağımsız değişken varsa, parantez göz ardı edilir. C# derleyicisi, hiçbir zaman bu oluşturur.

    Hiçbir zaman differentiating aşırı yüklenmiş yöntemler için kullanılması nedeniyle imza aşağıdaki bileşenleri temsil edilmez:

    • çağırma

    • dönüş türü

    • ELEMENT_TYPE_SENTINEL

  • Dönüştürme işleçleri yalnızca (op_Implicit ve op_Explicit), yöntemin dönüş değeri olarak kodlanmış bir ' ~' dönüş türüne göre yukarıda kodlanmış olarak izler.

  • Genel türler için geri tick ve ardından genel tür parametre sayısını belirten bir sayı tarafından türünün adı izleyecektir. Örnek:

    <member name="T:SampleClass`2">etiket olarak tanımlanan bir türü için public class SampleClass<T, U>.

    Genel türler parametre olarak alma yöntemleri, sayılar (örneğin 0 ','1) geri ticks ile başında genel tür parametresi belirtildi. Sıfır tabanlı dizi gösterim tipinin genel parametreleri temsil eden her numara.

Örnekler

Aşağıdaki örnekler için sınıf kimliği nasıl dizeler ve üyeleri oluşturulur:

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

    }
}

Ayrıca bkz.

Başvuru

/doc (C# Derleyici Seçenekleri)

xml belgesi açıklamalarının (C# Programlama Kılavuzu)

Kavramlar

C# Programlama Kılavuzu