का विस्तार करने के लिए विस्तार विधि मुझे आश्चर्य है कि क्या मैं System.Net.Mime.MediaTypeNames.Image
जैसे स्थिर वर्ग का विस्तार करने के लिए विस्तार विधि या अन्य तकनीकों का उपयोग कर सकता हूं, इसकी आवश्यकता से कम प्रकार है।स्थिर वर्ग
उत्तर
नहीं, विस्तार विधियों का उपयोग केवल उदाहरण विधियों को जोड़ने के लिए किया जा सकता है, न कि स्थैतिक तरीकों (या यहां तक कि गुण)। विस्तार विधियां वास्तव में स्थिर तरीकों के आस-पास सिंटैक्टिक चीनी हैं। उदाहरण के लिए, जब आप ऐसे गणना() के रूप में एक विस्तार विधि का उपयोग करें:
var list = GetList();
var size = list.Count();
यह वास्तव में करने के लिए संकलित किया गया है:
var list = GetList();
var size = Enumerable.Count(list);
आप विस्तार तरीकों का उपयोग कर एक मौजूदा वर्ग के लिए अतिरिक्त स्थिर तरीकों को नहीं जोड़ सकते ।
क्या यह कहना सही है कि "विस्तार विधियों का उपयोग केवल उदाहरण विधियों को जोड़ने के लिए किया जा सकता है"? जैसा कि आप समझाते हैं, वे केवल उदाहरण विधियों की उपस्थिति देते हैं। वे वास्तव में उदाहरण विधियां नहीं हैं, या आप कक्षा के गैर-सार्वजनिक सदस्यों तक पहुंच पाएंगे। –
नहीं, यह सी # में अभी तक संभव नहीं है, हालांकि उम्मीद है कि यह किसी बिंदु पर ऐसा हो जाएगा। और आप एक स्थैतिक वर्ग को उपclass नहीं कर सकते हैं और इस तरह से नई विधियों को जोड़ सकते हैं, क्योंकि स्थिर वर्ग object
से प्राप्त होना चाहिए। एक चीज जो आप कर सकते हैं, जो आपके कोड में एक बहुत ही समान प्रभाव उत्पन्न करती है, बस एक और स्थैतिक वर्ग घोषित करती है जिसका उपयोग आप अपनी विस्तार विधियों के बजाय करेंगे। उदाहरण के लिए:
public static class MessageBox2
{
public static DialogResult ShowError(string Caption, string Message, params object[] OptionalFormatArgs)
{
return MessageBox.Show(string.Format(Message, OptionalFormatArgs), Caption, MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
के बाद से मूल वर्ग स्थिर है, परिभाषा के द्वारा "विस्तार" विधि एक this
पैरामीटर के रूप में एक उदाहरण प्राप्त करने की आवश्यकता नहीं है, और बस मूल वर्ग के स्थिर तरीकों का उपयोग कर सकते हैं।
- 1. स्थिर वर्ग
- 2. एक स्थिर वर्ग
- 3. एक स्थिर वर्ग
- 4. स्थिर वर्ग सदस्य
- 5. स्थिर वर्ग के सदस्यों
- 6. जावा स्थिर वर्ग/चर
- 7. एक स्थिर वर्ग
- 8. एक स्थिर वर्ग
- 9. एक स्थिर वर्ग
- 10. String.xml या स्थिर वर्ग
- 11. किसी अन्य वर्ग से स्थिर स्थिर चर
- 12. जावा में आंतरिक स्थिर वर्ग
- 13. केवल स्थिर क्षेत्रों जावा वर्ग
- 14. अवैध संशोधक त्रुटि स्थिर वर्ग
- 15. वर्ग के अपने प्रकार के स्थिर वर्ग के सदस्य
- 16. अभिभावक वर्ग से बाल वर्ग स्थिर चर का उपयोग करें?
- 17. व्युत्पन्न वर्ग का अपना स्थिर विधि में आधार वर्ग के स्थिर विधि कॉलिंग
- 18. सी ++ स्थिर वर्ग और साझा_पीटीआर मेमोरी लीक
- 19. एक स्थिर वर्ग पर विस्तार विधियां?
- 20. सी # सार वर्ग स्थिर क्षेत्र विरासत
- 21. सी ++ में स्थिर वर्ग चर का उपयोग?
- 22. अजगर स्थिर वर्ग संपत्ति सेट/प्राप्त
- 23. स्थिर सूचक के साथ सी ++ वर्ग
- 24. सी # स्थिर वर्ग क्यों उपयोग करें?
- 25. स्थिर वर्ग डेटा बनाम अज्ञात नेमस्पेस सी ++
- 26. रूबी में स्थिर या वर्ग चर?
- 27. getDeclaredMethods() और छिपा सुपर वर्ग स्थिर विधि
- 28. मैटलैब स्थिर वर्ग के अंदर बुला
- 29. क्या एनम का मतलब स्थिर वर्ग है?
- 30. सीएलआर स्थिर वर्ग कहां स्टोर करता है?
आप स्थिर वर्गों का विस्तार नहीं कर सकते हैं; इस प्रश्न के डुप्लिकेट के लिए SO खोजें और आप कुछ कामकाज देखेंगे। – BeemerGuy
आपको इसकी आवश्यकता क्यों होगी? स्टेटिक क्लास का कोई संदर्भ नहीं है, और जो भी आप एक स्थिर वर्ग के अंदर कर सकते हैं कोड में "कहीं भी" किया जा सकता है। –
@ एम्बी - मुझे लगता है कि आप इसे पूरी तरह से संगठनात्मक puropses के लिए करना चाहते हैं। निश्चित रूप से आप आवश्यक विधियों के साथ एक स्थिर छवि उपयोगिता वर्ग बना सकते हैं (जो, इस उत्तर के अनुसार उसे किसी भी तरह से करना होगा), लेकिन मुझे लगता है कि ओपी अपने कोड को इस तरह व्यवस्थित करना चाहेगा कि उसे अतिरिक्त कक्षा की आवश्यकता नहीं है । दुर्भाग्य से, आप नहीं कर सकते। (मैं यहाँ ऐसा करने के लिए आया था)। – MattW