奇怪的图像变量行为

时间:2017-10-03 20:16:09

标签: c# image winforms

我有两个PictureBoxes我希望在第一个中显示图像,然后在第二个中显示旋转版本。我认为应该工作的代码确实很奇怪,因为图像在PictureBoxes

中旋转
Image im = Image.FromFile(D:\somefolder\picture.jpg");            
pictureBox1.Image = im;
Image im_rot = im;
//Image im_rot = Image.FromFile(D:\somefolder\picture.jpg");
im_rot.RotateFlip(RotateFlipType.Rotate270FlipNone);
pictureBox2.Image = im_rot;

如果我用第4行替换第3行,它可以工作,但为什么它不能以其他方式工作?

1 个答案:

答案 0 :(得分:3)

当前编写代码的方式,您要为两个变量分配相同的对象。这意味着当你对任何一个进行操作时,它会改变内存中的同一个对象。使用您已注释掉的备用代码,可以创建一个新的,不同的对象,该对象将分配给每个变量。