निम्नलिखित कार्यक्रम पर एक नज़र डालें:
class Test
{
List<int> myList = new List<int>();
public void TestMethod()
{
myList.Add(100);
myList.Add(50);
myList.Add(10);
ChangeList(myList);
foreach (int i in myList)
{
Console.WriteLine(i);
}
}
private void ChangeList(List<int> myList)
{
myList.Sort();
List<int> myList2 = new List<int>();
myList2.Add(3);
myList2.Add(4);
myList = myList2;
}
}
मुझे लगता है कि myList
पारित कर दिया जाएगा ref
, और उत्पादन होगा
3
4
सूची वास्तव में "रेफरी द्वारा पारित" है, लेकिन केवल sort
फ़ंक्शन प्रभावी होता है। निम्नलिखित कथन myList = myList2;
का कोई प्रभाव नहीं है।
तो उत्पादन वास्तव में है:
10
50
100
क्या आप मुझे इस व्यवहार की व्याख्या करने में मदद कर सकते हैं? यदि वास्तव myList
में पारित नहीं किया गया है (जैसा कि यह myList = myList2
प्रभावी नहीं होने से प्रकट होता है ), तो प्रभाव कैसे होता myList.Sort()
है?
मैं यह भी मान रहा था कि प्रभाव को और प्रभावी होने के लिए नहीं:
100
50
10
ChangeList
एक वापस जाने के लिएList<int>
के बजाय एक होvoid
अगर यह एक नई सूची बनाने वास्तव में है।