У меня есть этот код (C #):
using System.Collections.Generic;
namespace ConsoleApplication1
{
public struct Thing
{
public string Name;
}
class Program
{
static void Main(string[] args)
{
List<Thing> things = new List<Thing>();
foreach (Thing t in things) // for each file
{
t.Name = "xxx";
}
}
}
}
Не скомпилируется.
Ошибка:
Cannot modify members of 't' because it is a 'foreach iteration variable'
Если я изменю Thing
на class
, а не struct
, он скомпилируется.
Пожалуйста, кто-нибудь может объяснить, что происходит?