2009-09-18 13 views
5

कोई विचार? मैंने इसे स्थिर के रूप में चिह्नित किया लेकिन यह काम नहीं कर रहा है!मुझे काम करने के लिए मेरी विस्तार विधि नहीं मिल सकती है (सी #)

class ExtensionMethods 
{ 
    public static int Add(this int number, int increment) 
    { 
     return number + increment; 
    } 
} 
+0

क्या आपके पास 'ExtensionMethods' कथन का उपयोग करना है जहां आप इस कोड का उपयोग करना चाहते हैं? – pgb

+1

आपको CS1106 के लिए अपनी कंपाइलर चेतावनियों की जांच करनी चाहिए। –

उत्तर

19

आप कक्षा में स्थिर हैं। कंपाइलर ने आपको यह बताया होगा?

public static class ExtensionMethods 
+3

यह समाधान है, लेकिन संकलक आपको यह नहीं बताएगा। जहां तक ​​यह चिंतित है, वाक्यविन्यास मान्य है। यह नहीं पता कि आप एक विस्तार विधि बनाने की कोशिश कर रहे हैं। –

+3

यह कर सकता है और करता है - http://msdn.microsoft.com/en-us/library/bb397656.aspx – ICR

11

मुझे लगता है, तो वह एक स्थिर कक्षा में परिभाषित करने की आवश्यकता:

namespace MyNameSpace 
{ 
    public static class ExtensionMethods 
    { 
     public static int Add(this int number, int increment) 
     { 
      return number + increment; 
     } 
    } 
} 

तुम भी कोड फ़ाइल में एक using MyNameSpace; शामिल करना चाहिए आप उन्हें में उपयोग करना चाहते हैं जब तक कि यह एक ही है नेमस्पेस

+0

स्पॉट ऑन। विस्तार विधियों को केवल स्थिर वर्गों पर परिभाषित किया जा सकता है। –

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