2009-03-12 14 views
9

डुप्लिकेट प्रश्नसी # में Nullable विधि तर्क

Passing null arguments to C# methods

मैं नेट 2.0 के लिए सी # में यह कर सकते हैं?

public void myMethod(string astring, int? anint) 
{ 
//some code in which I may have an int to work with 
//or I may not... 
} 

यदि नहीं, तो क्या ऐसा कुछ है जो मैं कर सकता हूं?

+0

मैंने एक खोज की और डुप्लिकेट नहीं आया या इसका उत्तर दिया होगा। सबको शुक्रीया। –

उत्तर

17

हाँ, यह सोचते हैं आप शेवरॉन जानबूझकर जोड़ा गया है और तुम सच में मतलब:

public void myMethod(string astring, int? anint) 

anint अब एक HasValue संपत्ति होगा।

7

सी # 2.0 में आप कर सकते हैं;

public void myMethod(string astring, int? anint) 
{ 
    //some code in which I may have an int to work with 
    //or I may not... 
} 

और फोन की तरह

myMethod("Hello", 3); 
myMethod("Hello", null); 
14

विधि आप क्या हासिल करना चाहते पर निर्भर करता है। आप anint पैरामीटर ड्रॉप करने में सक्षम होना चाहते हैं, तो आप एक अधिभार बनाने के लिए:

public void myMethod(string astring, int anint) 
{ 
} 

public void myMethod(string astring) 
{ 
    myMethod(astring, 0); // or some other default value for anint 
} 

अब आप कर सकते हैं:

myMethod("boo"); // equivalent to myMethod("boo", 0); 
myMethod("boo", 12); 

आप एक नल पूर्णांक, अच्छी तरह से पारित करने के लिए चाहते हैं, देखना अन्य जवाब। ;)

+0

+1 पॉलिमॉर्फिज्म का उपयोग करने के लिए अच्छा सुझाव –

+3

यह polymorphism –

+1

@ गैरी नहीं है, हाँ, आपका अधिकार यह नहीं है। –

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