C# 如何在每次单击一个按钮时在两种方法之间切换?

C# 如何在每次单击一个按钮时在两种方法之间切换?,c#,.net,C#,.net,我是C#的新手,如果你们中的一些人觉得这很容易,我很抱歉:) 我点击了这个按钮: 单击按钮时,如何在这两种方法之间切换 方法#1只需单击一次 第二次单击将用于方法#2 第三次单击将用于方法#1 等等你可以这样做: bool executeMethodOne; private void buttonSwitchCamera_Click(object sender, RoutedEventArgs e) { executeMethodOne = !executeMethodOne;

我是C#的新手,如果你们中的一些人觉得这很容易,我很抱歉:)

我点击了这个按钮: 单击按钮时,如何在这两种方法之间切换

方法#1只需单击一次

第二次单击将用于方法#2

第三次单击将用于方法#1


等等

你可以这样做:

bool executeMethodOne;

private void buttonSwitchCamera_Click(object sender, RoutedEventArgs e)
{
   executeMethodOne = !executeMethodOne;

   var IrId = executeMethodOne ? IR_Id.IR_1 : IR_Id.IR_2;

    _blManager.SendTrackerCmd(TrackerCmdType.PrimaryAVT_ActiveSensor, (float)IrId);
}
有一个名为
executeMethodOne
bool
,每次单击按钮时都会将其反转。根据它是
true
还是
false
可以执行第一个或第二个方法

第一次单击是旧的:

    private void OnButtonClickOdd(object sender, RoutedEventArgs e)
    {
        // Unsubscribe OnButtonClickOdd
        button.Click -= OnButtonClickOdd;

        // Subcribe to OnButtonClickEven
        button.Click += OnButtonClickEven;

        // Do your job here
    }

    private void OnButtonClickEven(object sender, RoutedEventArgs e)
    {
        // Unsubscribe OnButtonClickEven
        button.Click -= OnButtonClickEven;

        // Subcribe to OnButtonClickOdd
        button.Click += OnButtonClickOdd;

        // Do your job here
    }
另一种方法:只需使用bool标志即可知道它奇数或偶数单击:

private bool odd = true;

private void buttonSwitchCamera_Click(object sender, RoutedEventArgs e)
{
    if(old)
    {
         // Odd click job
    }
    else
    {
         // Even click job
    }
    old = !old;
}

您不需要在两种方法之间切换。每次调用相同的方法,但第二个参数不同。您需要向类中添加一个成员,保持最后一个按钮状态。根据状态,您将选择正确的第二个参数值,您已将
bool
odd
命名,但在代码中,您将
old
用作
bool
private bool odd = true;

private void buttonSwitchCamera_Click(object sender, RoutedEventArgs e)
{
    if(old)
    {
         // Odd click job
    }
    else
    {
         // Even click job
    }
    old = !old;
}