我们都知道泛型 List<> 不会装箱值类型。为什么在下面的代码片段中 rects[1] 不受 Inflate 方法的影响?
如果没有装箱并且我想影响 rect[1],我需要编写三行代码,如图所示 - 已注释。有人可以解释一下吗?
List<Rectangle> rects = new List<Rectangle>();
for (int i = 0; i < 5; i++)
{
rects.Add(new Rectangle(1, 1, 1, 1));
}
foreach (Rectangle item in rects)
{
Console.WriteLine(item);
}
//Rectangle r = rects[1];
//r.Inflate(100, 100);
//rects[1] = r;
rects[1].Inflate(100, 100);
foreach (Rectangle item in rects)
{
Console.WriteLine(item);
}