C# if(pictureBox1.Image==ProjectName.Properties.Resources.Q)

C# if(pictureBox1.Image==ProjectName.Properties.Resources.Q),c#,if-statement,equals,picturebox,C#,If Statement,Equals,Picturebox,我的代码中有一个问题,它不起作用,请看代码: 怎么了?我发现: if (pictureBox1.Image.Equals(Q)) { --stav; } 它应该这样做 if (pictureBox1.Image == ProjectName.Properties.Resources.Q) { } 我的问题是,如何制作像if pictureBox1.Image==ProjectName。。。。。 谢谢 问题解决了 Resources.SomeProperty让我们假设SomeProp

我的代码中有一个问题,它不起作用,请看代码: 怎么了?我发现:

if (pictureBox1.Image.Equals(Q))
{
    --stav;
}
它应该这样做

if (pictureBox1.Image == ProjectName.Properties.Resources.Q)
{

}
我的问题是,如何制作像if pictureBox1.Image==ProjectName。。。。。 谢谢

问题解决了

Resources.SomeProperty让我们假设SomeProperty是一个映像,它将始终返回一个新实例。所以它们是不同的参照物

Image类不重载==运算符。因此==将导致引用比较,这对于不同的引用永远不会是真的

Equals方法也不会工作,因为它不会覆盖Equals,所以将再次使用引用比较


如果需要比较,您需要自己的图像比较算法。你可以通过逐像素的比较来实现这一点。

关于到底是什么问题的另一个问题?你想要实现什么?将图像与字符串进行比较?请提供更多的细节,至少你在标题和问题表述上增加了一些努力…编辑它,现在有简要的问题。我不想比较图片,我想比较图片来源。比较如果现在使用的图像比较作为文件地址与ProjectName.Properties.Resources.image相同,得到了吗?我想比较文件路径。不是逐像素的,那是什么意思?只有图像对象时,您无法找到它的来源。你能再解释一下你想要实现什么吗?ProjectName.Properties.Resources.Image不是一个文件路径。它也是一个返回图像的属性。这也是一个目标。我的答案仍然有效,如果你想比较你需要逐像素比较的图像。另一种解决方法是将获取图像的属性的名称存储在字符串字段中,然后可以检查该字符串字段以查看获取图像的位置。否则你不能那样做。无法找到图像对象的来源。[link][/link]那么如何比较pictureBox1使用的图像是否来自资源?不是逐像素的另一种方式?请简要介绍一下。