سؤال

كتابة بعض وثائق XML لفئة مساعد أصلية.لكن لا يمكنني معرفة أنه يمكنني الرجوع إلى Expression<Func<T, bool>> دون الحصول على خطأ في بناء الجملة.هل هذا ممكن حتى؟لقد حاولت هذا:

<see cref="Expression{Func{T, bool}}"/>

لكن يظهر لي خط أحمر متعرج تحته {T, bool}}.هذا يعمل على الرغم من:

<see cref="Expression{TDelegate}"/>

أي شخص لديه فكرة؟


تحديث:

يبدو أن الإجابة التي تم تقديمها (وقبلتها) نجحت.لكن الآن بدأت أتلقى الكثير من التحذيرات بشأن عدم القدرة على حل الأشياء.لدي فصل يسمى ExpressionBuilder<T> الذي يعمل مع Expression<Func<T, bool>> كثيراً.لذلك أريد بالطبع الإشارة إلى ذلك في تعليقاتي على XML.

لقد جربت كلا الإصدارين اللذين أعرفهما:

<see cref="Expression&lt;Func&lt;T, Boolean&gt;&gt;"/>
<see cref="Expression{Func{T, Boolean}}"/>

ولكن لا يعمل.(وفي الصورة الأخيرة، يضع ReSharper لونًا أزرقًا متعرجًا تحته {T,Boolean}} لقد تلقيت تحذيرين تحت التجميع في كل مكان استخدمته والذي ينص على ما يلي:

  1. يحتوي تعليق XML على "blah blah" على السمة cref "Expression>" التي لا يمكن حلها
  2. يجب أن يكون تعريف معلمة النوع معرفًا وليس نوعًا.انظر أيضًا الخطأ CS0081.

لديك نفس المشكلة في مكان ما حاولت الإشارة إليه Range<Nullable<DateTime>> (Range<DateTime?> لم تنجح سواء.كلاهما مع { } ومع &lt; &gt;)

ألا يفترض بي أن أشير إلى هذه الأنواع من الأدوية العامة؟

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

المحلول

يبدو أنه لا توجد طريقة للإشارة إلى عام من عام في وثائق XML، لأنه في الواقع، لا توجد طريقة للإشارة إلى عام من أي نوع محدد.

لاسي في كارلسن إجابة جعلته ينقر بالنسبة لي:

إذا كتبت <see cref="IEnumerable{Int32}" />, ، يستخدم المترجم فقط "Int32" كاسم معلمة النوع، وليس وسيطة النوع.كتابة <see cref="IEnumerable{HelloWorld}" /> ستعمل كذلك.وهذا أمر منطقي لأنه لا توجد صفحة محددة في MSDN لـ "IEnumerable of int" التي يمكن أن ترتبط بها وثائقك.

لتوثيق صفك بشكل صحيح، أعتقد أنه سيتعين عليك كتابة شيء مثل:

<summary>
Returns an <see cref="IEnumerable{T}" /> of <see cref="KeyValuePair{T,U}" /> 
of <see cref="String" />, <see cref="Int32" />.
</summary>

أتمنى أن يعجبك النص.

نصائح أخرى

ما الذي تريد الارتباط به بالضبط؟

لا يوجد شيء من هذا القبيل في الوثائق مثل Expression<Func<T>>, ، لذا من الواضح أن الرابط لذلك لن يعمل.

يمكنك الارتباط به Expression<TDelegate> لأن ذلك موجود.

أما بالنسبة لما يعمل أم لا، فلا يعمل أي مما يلي في Visual Studio 2008 / .NET 3.5 بالنسبة لي:

/// <see cref="Expression&lt;Func&lt;T&gt;&gt;"/>.
/// <see cref="Expression{Func{T}}"/>.

لكن هذا يعمل:

/// <see cref="Expression{T}"/>.

لذلك يبدو أن معلمة النوع العامة لا يجب أن تكون مماثلة لتلك الموجودة في الإعلان.

// Use "&lt;" instead of "<" symbol and "&gt;" instead of ">" symbol.

// Sample:

<see cref="Expression&lt;Func&lt;T, bool&gt;&gt;"/>

أنا أواجه هذا الآن، لأن لدي وظيفة تُرجع ملفًا List<List<byte>>.نعم، إنه قبيح، لكنني لم أكتبه.إخلاء المسؤولية القياسي، وأنا أعلم.

على أي حال، في VS 2017 مع R# Ultimate 2017.1، هذا التعليق للمستند...

<returns><see cref="List{List{Byte}}" /> of split frames</returns>

...يعطيني خطأ في بناء الجملة.ومع ذلك، هذا...

<returns><see><cref>List{List{byte}}</cref></see> of split frames</returns>

...لا. Eeeenteresting.

لا تزال قبيحة؟نعم.

مثل قبيح؟أعتقد أنه أقل فظاعة من الاستخدام &lt; و &gt; نفسي....

لا تستخدم عنصر رؤية فارغًا (<see cref="..." />).بدلاً من ذلك، ضع النص داخل عنصر المشاهدة

<see cref="IEnumerable{T}">IEnumerable</see>&lt;<see cref="..."/>$gt;
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top