2012-05-14 9 views
6

मुझे कभी भी निहित ऑपरेटरों को पसंद नहीं आया (एक्सटेंशन विधियों को प्राथमिकता दें) क्योंकि कोड में उस कलाकार/रूपांतरण के दौरान दृश्यमान रूप से देखना कठिन होता है।निहित ऑपरेटर विधियों के साथ काम करने के लिए "उपयोग खोजें" कैसे प्राप्त करें?

कल्पना कीजिए अगर आप नीचे दिए तरह उदाहरण है:

public static implicit operator Deal(string dealAsXml) 
{ 
    //convert the xml into Deal object 
} 

ऊपर अंतर्निहित ऑपरेटर आप डील वस्तु में XML स्वरूप में कास्ट करने के लिए/परिवर्तित सौदा मदद करता है।

आमतौर पर जब आप किसी विधि पर राइट क्लिक करते हैं, तो आप उस पर "उपयोग करें" (या Alt + F7) का उपयोग कर सकते हैं, जो काफी सहायक है, क्या निहित ऑपरेटरों के लिए कुछ भी समान है?

मुझे लगता है कि जहां संभव हो एक्सटेंशन एक्सटेंशन का उपयोग करने का एक और कारण है।

उत्तर

10

शायद रिशेर्पर की तरह कुछ ऐसा कर सकता है, लेकिन मुझे यकीन नहीं है। जब मुझे उपयोग खोजने की ज़रूरत होती है, तो मैं इसे गरीब व्यक्ति के तरीके से करता हूं और निहित ऑपरेटर को हटा देता हूं, फिर से संकलित करता हूं और त्रुटियों को ढूंढता हूं।

मुझे लगता है कि सैद्धांतिक रूप से संकलक एक मामला याद कर सकता है अगर यह एक अलग अंतर्निहित ऑपरेटर (या किसी विधि के "ऑब्जेक्ट" प्रकार अधिभार पर स्विच कर सकता है), लेकिन यह मेरे उपयोग के लिए काम करता है। मुझे यकीन है कि एक बेहतर समाधान है, लेकिन यह अब तक मेरे लिए काम करता है।

संपादित करें: बस एक विचार था और इसका परीक्षण किया। अपने अंतर्निहित ऑपरेटर को [Obsolete] के रूप में चिह्नित करने से वास्तव में एक कंपाइलर चेतावनी का परिणाम होगा जहां आप इसका उपयोग करेंगे! मुझे लगता है कि यह उन कोने के मामलों को पकड़ लेगा जहां अन्य मान्य ओवरलोड हैं जिन्हें आप पूरी तरह से निहित ऑपरेटर को हटाकर याद करते हैं।

+3

रिशेर्पर को या तो निहित ऑपरेटर का उपयोग नहीं मिलता है। –

+0

ने भी वही गरीब आदमी के तरीके को किया। :) यदि आपके पास बहुत अच्छा समाधान है –

+0

यह बहुत खराब है। आपको लगता है कि एक ऐसा तरीका होगा क्योंकि निहित ऑपरेटरों (मुझे विश्वास है) स्थिर रूप से संकलित हैं और किसी भी स्थैतिक विधि की तरह आसानी से खोजे जा सकेंगे। –

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

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