0
    private void ProcessFrame(object sender, EventArgs arg)
    {
        Wrapper cam = new Wrapper();

        //show the image in the EmguCV ImageBox
        WebcamPictureBox.Image = cam.start_cam(capture).Resize(390, 243, Emgu.CV.CvEnum.INTER.CV_INTER_CUBIC).ToBitmap();
        FaceDetectedLabel.Text = "Faces Detected : " + cam.facesdetected.ToString();
    }

我正在开发一个 C# Windows 应用程序。我被一个简单的问题困住了:

我怎么能在条件下做一个 if else:如果“ cam.facesdetected.ToString() ”如果等于或大于 2 做某事,否则什么也不做。

我试过这个,但它似乎不起作用。谁能帮我?

        cam.facesdetected = abc;
        MessageBox.Show("The detected faces is:" + abc);

        if (abc >= 2)
        {
            //Do action 
        }

        else
        {
            //Do nothing
        }
4

5 回答 5

2

你可以:

if (Convert.ToInt32(abc) > 2)
   DoWork()

尽管将 ABC 声明为整数可能是明智的,但如果它始终是整数。

于 2012-12-04T18:02:09.810 回答
2

我相信您的 if 语句倒置了。

abc = cam.facesdetected;

现在您可以对 进行操作abc,如您所列出的。

于 2012-12-04T18:02:27.690 回答
0

我认为您应该在不分配任何新变量的情况下使用它。没有必要使用abc变量。您可以cam.facesdetected像这样直接使用(我想它是一个数字):

    MessageBox.Show("The detected faces is:" + cam.facesdetected.ToString());

    if (cam.facesdetected >= 2)
    {
        //Do action 
    }

    else
    {
        //Do nothing
    }
于 2012-12-04T18:08:50.420 回答
0

您只能通过右侧变量分配左侧变量

LHS=RHS

你分配错了它一定是abc = cam.facesdetected;

TryParse您可以使用Method检查它是否大于 & 等于 2

   bool result = Int32.TryParse(abc, out number);
      if (result)
      {
         if(number>=2)
        {
          //dowork;   
         }   
      }
于 2012-12-04T18:02:58.017 回答
0

使用数字时不要使用.ToString()

您以错误的方式分配变量,这应该是

var abc = cam.facesdetected;

如果 cam.facesdetected 不是数字,则使用

var abc = Convert.ToInt32(cam.facesdetected);

接着

if (Convert.ToInt32(abc) >= 2)
{
   //Do action 
}
于 2012-12-04T18:10:56.040 回答