मुझे पता है कि मूल्य प्रकार अपरिवर्तनीय होना चाहिए, लेकिन यह सिर्फ एक सुझाव है, नियम नहीं, है ना?सी # में, मैं फ़ोरैच लूप में मान प्रकार के उदाहरण के सदस्य को क्यों संशोधित नहीं कर सकता?
struct MyStruct
{
public string Name { get; set; }
}
public class Program
{
static void Main(string[] args)
{
MyStruct[] array = new MyStruct[] { new MyStruct { Name = "1" }, new MyStruct { Name = "2" } };
foreach (var item in array)
{
item.Name = "3";
}
//for (int i = 0; i < array.Length; i++)
//{
// array[i].Name = "3";
//}
Console.ReadLine();
}
}
कोड में foreach पाश जबकि पाश के लिए टिप्पणी की ठीक काम करता है संकलन नहीं करता है: तो मैं कुछ इस तरह क्यों नहीं कर सकते। त्रुटि संदेश:
'आइटम' के सदस्यों संशोधित नहीं कर सकते, क्योंकि यह एक 'foreach यात्रा चर'
कि क्यों है?
+1: अच्छा प्रश्न है। मुझे लंबे समय से पता चला है कि 'foreach' लूप वैरिएबल को संशोधित नहीं किया जा सका, लेकिन मैंने कभी नहीं सीखा ** ** क्यों! – jp2code