2009-01-07 5 views
22

मैं एमएसडीएन लिंक जैसे "तुलनाऑर्डिनल ओवरलोड" में देखता हूं। मैं सी # में ऐसा लिंक कैसे लिख सकता हूं?सी # में <seealso> टैग में विधि अधिभार के लिए एक क्रेफ बनाने के लिए कैसे?

मैंने कोशिश की:

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

लेकिन संकलक मुझे विधि है जो अन्य भार के है के लिए एक अस्पष्ट संदर्भ होने के बारे में एक चेतावनी देता है।

:

उत्तर

4

एक्सएमएल दस्तावेज के पास किसी विधि के सभी ओवरलोड को संदर्भित करने का साधन नहीं है।

सी # परियोजनाओं के लिए सबसे लोकप्रिय दस्तावेज जनरेटर Sandcastle है। यदि आवश्यक हो तो यह स्वचालित रूप से ओवरलोड सूची पृष्ठ पर एक लिंक बना देगा। इसलिए सदस्यों की सूची पृष्ठ में ओवरलोडेड विधि का नाम केवल एक बार दिखाई देगा, इसे क्लिक करने से आप उस विधि के लिए अधिभार पृष्ठ की सूची में और वहां से एक विशिष्ट ओवरलोड पर जा सकते हैं।

एक्सएमएल दस्तावेज में अधिभार सूची पृष्ठ पर एक लिंक रखने के लिए बाहरी उपकरण का अंतरंग ज्ञान की आवश्यकता होगी और शायद एक अच्छा विचार नहीं है।

यदि आपके पास वास्तव में यह होना चाहिए तो शायद एक तरीका एक विशिष्ट रूप से गठित आईडी के साथ एंकर का उपयोग करना है। अधिकांश दस्तावेज़ जनरेटर प्री या पोस्ट प्रसंस्करण जेनरेट की गई फ़ाइलों के कुछ आर्केन साधन प्रदान करते हैं और आपको इन एंकरों को चुनने और उनके लिए उपयुक्त href प्रदान करने का अवसर देना चाहिए।

OTH, यह अपने लायक की तुलना में अधिक परेशानी हो सकती है;)

+0

Sandcastle का व्यवहार मेरे लिए पर्याप्त होना चाहिए। जानकारी के लिए धन्यवाद। –

12

विशिष्ट सदस्यों को लक्षित करने के (शुरुआती सवाल मैं वास्तव में भार के लिए लिंक करने के लिए इस टैग को लिखने के लिए, की आवश्यकता है या यह स्वचालित रूप से प्रलेखन प्रोसेसर द्वारा उत्पन्न होता है?) मेरा मानना ​​है कि आप सिर्फ हस्ताक्षर से मेल :

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

ईमानदारी से कहूं तो मुझे यकीन है कि कैसे एक "सभी भार के" लिंक उत्पन्न करने के लिए नहीं कर रहा हूँ; मुझे लगता है कि किसी भी समझदार जनरेटर ने यह स्वचालित रूप से किया था।

+0

धन्यवाद। क्या आपके द्वारा उपयोग किए जाने वाले जनरेटर स्वचालित रूप से ऐसा करते हैं? –

+0

मैं वास्तव में जनरेटर का उपयोग नहीं करता; अकेले एक्सएमएल मेरे उपयोग के लिए ठीक है (इसका उपयोग इंटेलिजेंस और परावर्तक दोनों द्वारा किया जाता है)। मुझे आमतौर पर स्टैंडअलोन दस्तावेज की आवश्यकता नहीं होती है। –

12

सैंडकैसल का उपयोग करते हुए यह सरल है:

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

FullyQualifiedMyMethod पूरा मार्ग आप नामस्थान और कक्षाओं सहित अधिभार, तक पहुंचने की आवश्यकता है, यानी: System.Linq.Enumerable.Sum

हालांकि वीबी कंपाइलर एक चेतावनी जारी करता है कि विशेषता को हल नहीं किया जा सकता है, जिसे अनदेखा किया जा सकता है।

+3

एसएचएफबी 2014.5.31.0 के साथ परीक्षण इंगित करता है कि उपसर्ग 'ओ:' होना चाहिए, 'अधिभार नहीं:'। – tm1

+0

और सी # कंपाइलर (लैंग संस्करण 5.0 के लिए परीक्षण) 'o:' का उपयोग करते समय चेतावनी जारी नहीं करता है, तो शायद यह जाने का तरीका है। – binki

+1

एक देखने के साथ कोशिश की (देखने के बजाए) और कोई भाग्य नहीं था। अधिभार: एक कंपाइलर चेतावनी जारी करता है और SHFB 14.5.31 इसे अनदेखा करता है। ओ भी कोशिश की: और एम: और संकलक ठीक है लेकिन एसएचएफबी दोनों को अनदेखा करता है। –

संबंधित मुद्दे