2010-05-21 22 views
8

ठीक है, मैं शायद, यहाँ लेकिन कुछ गलत समझा गया है जहाँ तक मैं देख सकता हूँ ...क्या आप एक्सटेंशन विधि स्टेटिक/साझा कर सकते हैं?

  • एक विस्तार विधि, एक वर्ग नहीं एक मॉड्यूल में शामिल किया गया है
  • आप नहीं कर सकते मॉड्यूल में विधियां स्टेटिक/साझा
  • इसलिए आप बिना किसी इंस्टॉलेशन के कक्षा में एक्सटेंशन विधि का उपयोग नहीं कर सकते हैं।

दूसरे शब्दों में आप स्ट्रिंग पर एक विस्तार विधि नहीं बना सकते "MyExtensionMethod" और उपयोग कहा जाता है:

String.MyExtensionMethod("String") 

लेकिन बजाय ..

Dim test As String 
test.MyExtensionMethod("string") 

यह सही है? या क्या कोई तरीका है कि मैं स्थिर तरीकों के रूप में काम करने के लिए विस्तार विधियां प्राप्त कर सकता हूं?

उत्तर

9

आप सही हैं। एक्सटेंशन विधियां केवल एक प्रकार के उदाहरणों पर कार्य कर सकती हैं।

और नहीं, दुर्भाग्यवश, उन तरीकों पर कार्य करने के लिए कोई चालाक तरीका नहीं है जो स्थिर तरीकों की तरह व्यवहार करते हैं।

+1

उत्तर के लिए धन्यवाद। हालांकि, एक अविश्वसनीय निरीक्षण की तरह लगता है, क्योंकि मौजूदा ढांचे की वस्तुओं पर अधिकांश "सहायक प्रकार" फ़ंक्शंस स्थिर के रूप में कार्य करते हैं :( –

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