问题描述
今天写了一个小程序,其中用到了两个Image类型变量,要比较这两个变量是否想等,写好了一个if分支,却一直调试进不去,大致代码如下:Imageimage2=pictureBox2.Image;if(image2==Properties.Resources.s){MessageBox.Show("NeckAndNeck!");}elseif(image2==Properties.Resources.b){MessageBox.Show("YouLost!");}elseif(image2==Properties.Resources.j){MessageBox.Show("YouWin!");}哪位大神帮忙啊!!!
解决方案
解决方案二:
那就说明它们不像等
解决方案三:
Image是引用类型Image是引用类型Image是引用类型重要的事情说三遍!所以除非你的pictureBox2.Image本身就是Properties.Resources里面的,否则肯定不相等建议你对于这种比较,还是比较唯一性名字比较好
解决方案四:
我百度到的是把这两个Image变量保存到内存流中去进行比较,我比较郁闷的是为什么不能比较这两个变量的引用
解决方案五:
用两张图片的MD5值进行比较
解决方案六:
比较hash值
解决方案七:
顶4楼和5楼,你也可以比较两个image的二进制数据。因为image是引用,有没有重载==,所以比较相等的时候是比较两个引用是否指向同一个对象,如果不是指向同一个对象,则视为不想等。
解决方案八:
我比较文件名。不过具体看楼主需求了。
时间: 2024-11-10 00:11:04