Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/290.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 奇怪的图像变量行为_C#_Image_Winforms - Fatal编程技术网

C# 奇怪的图像变量行为

C# 奇怪的图像变量行为,c#,image,winforms,C#,Image,Winforms,我有两个图片框,我想在第一个图片框中显示一个图像,然后在第二个图片框中显示一个旋转版本。然而,我认为应该可以工作的代码确实表现得很奇怪,因为图像在两个图片框中都旋转了: Image im = Image.FromFile(D:\somefolder\picture.jpg"); pictureBox1.Image = im; Image im_rot = im; //Image im_rot = Image.FromFile(D:\somefolder\picture.j

我有两个
图片框
,我想在第一个图片框中显示一个图像,然后在第二个图片框中显示一个旋转版本。然而,我认为应该可以工作的代码确实表现得很奇怪,因为图像在两个
图片框中都旋转了:

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;

如果我将第3行替换为第4行,那么它可以工作,但为什么不能以另一种方式工作呢?

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

按照当前编写代码的方式,您将同一对象分配给两个变量。这意味着当你对其中一个进行操作时,它会改变内存中的同一个对象。使用您注释掉的替代代码,您创建了一个新的、不同的对象,该对象被分配给每个变量。

您应该阅读关于引用类型和值类型的内容。嗯,好的,认为它们是自变量。我会调查的。谢谢你应该阅读参考类型和值类型的可能的重复。嗯,好的,认为它们是自变量。我会调查的。谢谢可能重复的