मैं एक विधि, params
कीवर्ड का उपयोग करता है तो तरह है:एक पैराम विधि के लिए नल गुजरने का परिणाम नल पैरामीटर सरणी में क्यों होता है?
private void ParamsMethod(params string[] args)
{
// Etc...
}
फिर, मैं विधि तर्क के विभिन्न संयोजनों का उपयोग कर फोन:
// Within the method, args is...
ParamsMethod(); // - a string array with no elements
ParamsMethod(null); // - null (Why is this?)
ParamsMethod((string)null); // - a string array with one element: null
ParamsMethod(null, null); // - a string array with two elements: null and null
ParamsMethod("s1"); // - a string array with one element: "s1"
ParamsMethod("s1", "s2"); // - a string array with two elements: "s1" and "s2"
मैं मामलों के सभी समझते हैं, के अलावा दूसरा एक। क्या कोई बता सकता है कि क्यों ParamsMethod(null)
args
null
होने के कारण, एक शून्य तत्व के साथ सरणी के बजाय क्यों?
अब जब आप उत्तर जानते हैं, तो आप इस पहेली पर काम कर सकते हैं। आपके पास दो विधियां हैं, 'शून्य एम (ऑब्जेक्ट) {} 'और' शून्य एम (पैराम्स ऑब्जेक्ट []) {} '। आप 'एम (शून्य) 'कहते हैं।कौन सा अधिभार चुना जाता है, इसे क्या पास किया जाता है, और क्यों? –
मुझे इससे पहले सामना करना पड़ा है। मुझे लगता है कि सिर्फ एक विधियों का नाम बदल दिया गया है। :) – FishBasketGordo