我的if else声明可能有什么问题?

0 c# if-statement

 Card img = new Card();
   Deck im = new Deck();

    private void button1_Click(object sender, EventArgs e)
    {
        Bitmap bc;// = new Bitmap(100, 142);

        Brush b = new SolidBrush(Color.Green);
        Card[] card = im.Shuffling();

        bc = img.DrawCard(card[1]);
Run Code Online (Sandbox Code Playgroud)

虽然Color1属性是==到b,编译器仍会跳到else语句,即使我使用not(!=)函数,所有组件仍然都在if语句中.哪里可能出错?

        if (card[1].Color1== b)
        {

            pic = new PictureBox();
            piclist = new List<PictureBox>();


            numberOfCards++;

            piclist.Add(pic);

            this.Controls.Add(pic);
            pic.Size = pictureBox1.Size;
            pic.Left = pictureBox1.Left + ((pictureBox1.Width) * numberOfCards);
            pic.Top = pictureBox1.Top;
            pic.Visible = true;
            pic.SizeMode = PictureBoxSizeMode.StretchImage;

            pic.BringToFront();

            pic.Image = bc;



        }
        else 
            MessageBox.Show("unequall");




    }
Run Code Online (Sandbox Code Playgroud)

suk*_*to1 5

(因为我没有评论的代表)要捎带AaronLS的回复,这对我来说似乎是正确的答案:SolidBrush对象将有一个属性SolidBrush.Color,你在构造函数调用中设置

Brush b = new SolidBrush(Color.Green);
Run Code Online (Sandbox Code Playgroud)

因此,当您检查画笔颜色和卡片颜色的相等性时,您需要返回画笔的颜色以进行比较:

if (card[1].Color1== b.Color)
Run Code Online (Sandbox Code Playgroud)

虽然如果card [x] .Color1属于差异参考类型,情况可能并非如此.