मैं दो तरीकों कि एक दूसरेक्या विज़ुअल स्टूडियो के सी # इंटेलिजेंस को पहले एक निश्चित विधि अधिभार प्रदर्शित करने के लिए एक संकेत दिया जा सकता है?
public class Car
{
public int GetPrice(string vinNumber)
{
string make = Database.GetMake(vinNumber); // expensive operation
string model = Database.GetModel(vinNumber); // expensive operation
int year = Database.GetYear(vinNumber); // expensive operation
return this.GetPrice(make, model, year);
}
public int GetPrice(string make, string model, int year)
{
// Calculate value and return
}
}
के भार के मेरे उदाहरण में हैं, GetPrice (बनाने, मॉडल, साल) अधिभार निष्पादित करने के लिए सस्ता है, लेकिन GetPrice (vinNumber) विधि महंगा है। समस्या यह है कि महंगी विधि में सबसे कम पैरामीटर होते हैं और यह पहले सी # इंटेलिजेंस में दिखाई देता है।
दोनों विधियां मान्य हैं, लेकिन मैं लोगों को सस्ते विधि को कॉल करने के लिए प्रोत्साहित करना चाहता हूं। लेकिन लोग कॉल करने के तरीके को चुनने से पहले इंटेलिसेंस में सभी अधिभारों को नहीं देख पाते हैं, और महंगे को अक्सर मेरी कंपनी के कोडबेस में बुलाया जा रहा है।
क्या विजुअल स्टूडियो को किसी विशेष विधि को "इंटेलिजेंस प्राथमिकता" देने के लिए कहने का कोई तरीका है, तो यह पहले दिखाई देता है?
आपके साधारण प्रश्न के बारे में पता नहीं है, लेकिन इस विशेष मामले शायद जैसे नामकरण के साथ हल किया जा सकता है महंगे संस्करण के लिए सस्ते संस्करण और QueryPrice या FetchPrice के लिए GetPrice (संकेत है कि यह किसी डेटाबेस से बात करने जा रहा है)। सिर्फ एक विचार। – itowlson
और यदि आपको अनुकूलता के लिए महंगे अधिभार को रखने की आवश्यकता है, तो इसे Intellisense से छिपाने के लिए इसे EditorBrowsableAttribute (EditorBrowsableState.Never) के साथ चिह्नित करें। – itowlson
मुझे वहां तीन डेटाबेस कॉल करने के ज्ञान के बारे में आश्चर्य होगा। निश्चित रूप से आप एक प्रश्न लिख सकते हैं जो केवल एक बार डेटाबेस को मारते समय आपको आवश्यक सभी डेटा देता है। –