كيفية إنشاء cref للطريقة الزائدة في علامة <seealso> في C#؟

StackOverflow https://stackoverflow.com/questions/419702

  •  03-07-2019
  •  | 
  •  

سؤال

أرى في روابط MSDN مثل "CompareOrdinal Overloads".كيف يمكنني كتابة مثل هذا الرابط في C#؟

حاولت:

<seealso cref="MyMethod">MyMethod Overloads</seealso>

لكن المترجم يحذرني من كونه مرجعًا غامضًا للطريقة التي تحتوي على أحمال زائدة أخرى.

(سؤال مبتدئ:هل أحتاج بالفعل إلى كتابة هذه العلامة للربط بالأحمال الزائدة، أم أنها يتم إنشاؤها تلقائيًا بواسطة معالجات التوثيق؟)

هل كانت مفيدة؟

المحلول

لا تحتوي وثائق Xml على وسيلة للإشارة إلى جميع التحميلات الزائدة للطريقة.

منشئ التوثيق الأكثر شيوعًا لمشاريع C# هو Sandcastle.سيقوم تلقائيًا بإنشاء رابط إلى صفحة قائمة التحميل الزائد إذا لزم الأمر.وبالتالي، في صفحة قائمة الأعضاء، سيظهر اسم الطريقة ذات التحميل الزائد مرة واحدة فقط، وسيؤدي النقر فوقه إلى نقلك إلى قائمة صفحة التحميل الزائد لهذه الطريقة ومن هناك إلى طريقة التحميل الزائد المحددة.

إن وضع رابط لصفحة قائمة التحميل الزائد في وثائق Xml يتطلب معرفة وثيقة بالأداة الخارجية المستخدمة وربما لا تكون فكرة جيدة.

إذا كان يجب أن يكون لديك هذا بالفعل، فربما تكون إحدى الطرق هي استخدام مرساة بمعرف تم تشكيله بشكل محدد.توفر معظم مولدات المستندات بعض الوسائل الغامضة للمعالجة المسبقة أو اللاحقة للملفات التي تم إنشاؤها ويجب أن تمنحك الفرصة لاختيار هذه المراسي وتوفير href المناسب لها.

أوه، قد يكون أكثر صعوبة من قيمته ;)

نصائح أخرى

لاستهداف محدد أيها الأعضاء، أعتقد أنكم تطابقون التوقيع فقط:

/// <seealso cref="Foo(int)"/>
static void Foo() { }
/// <seealso cref="Foo()"/>
/// <seealso cref="Foo(float)"/> <------ complains
static void Foo(int a) { }

لأكون صادقًا، لست متأكدًا من كيفية إنشاء رابط "جميع الأحمال الزائدة"؛أفترض أن أي مولد عاقل قام بذلك تلقائيًا.

باستخدام Sandcastle الأمر بسيط:

<seealso cref="overloads:FullyQualifiedMyMethod">MyMethod Overloads</seealso>

FullyQualifiedMyMethod هو المسار الكامل الذي تحتاجه للوصول إلى التحميل الزائد، بما في ذلك مساحات الأسماء والفئات، أي:System.Linq.Enumerable.Sum

ومع ذلك، يصدر مترجم VB تحذيرًا يفيد بأنه لا يمكن حل السمة، وهو ما يمكن تجاهله.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top