首页 > 解决方案 > 如何使用不同的变量多次启动一个方法

问题描述

我一直在创建一个自动结帐机器人,而且我对 C# 和一般编码都很陌生。我已经走了很远,几乎完成了程序,或者我想,现在我希望能够创建多个任务,或者多次运行任务方法。我还希望能够在每个任务上分别输入不同的“配置文件”,该配置文件定义了字符串,例如登录电子邮件、密码等。我很困惑,我什至不知道从哪里开始,也许有人能指出我正确的方向让我开始?上次我从这个社区得到了一些惊人的帮助,它帮助了我很多。这是我目前的尝试:

  public void KeywordTask1()
    {
        Start();
        LogIn();
        FindProductByKeyword();
        stopwatch.Start();
        AddToCart();
        Checkout();
        TimeSpan CheckoutTime = stopwatch.Elapsed;
    }
    public void KeywordTask2()
    {
        Start();
        LogIn();
        FindProductByKeyword();
        stopwatch.Start();
        AddToCart();
        Checkout();
        TimeSpan CheckoutTime = stopwatch.Elapsed;
    }

我有启动这些任务的按钮,但我也希望改变变量,比如我在 Windows 窗体中设置的状态文本。这是我的 GUI,如果它可以帮助您更好地理解我的代码: https ://gyazo.com/c6e9334e04aeb223e0afade6da8bec4e

如果您需要我的其他任何东西,请告诉我!我不确定这是否允许,但我愿意花钱请人帮助我度过这个难关,不是很多,因为我只有 16 岁哈哈,但无论如何,谢谢!

标签: c#multithreadingseleniumgoogle-chrometask

解决方案


使用不同的输入创建方法以变量启动方法

public void MyUsername(string username)
{
    MessageBox.Show(username);
}

private void buttonUsername1_Click(object sender, EventArgs e)
{
    MyUsername("Adam");
}
private void buttonUsername2_Click(object sender, EventArgs e)
{
    MyUsername("Jack");
}

要多次启动方法,请使用循环

private void btnDoAllTask_Click(object sender, EventArgs e)
{
    int count = 0;
    // run 5 times
    while(count < 5)
    {
        count++;
        MyUsername("username" + count.ToString());
    }
}

或遍历数组

private void btnDoAllTask_Click(object sender, EventArgs e)
{
    var listUsername = new string[] { "one", "two", "three" };
    foreach (var username in listUsername)
    {
        MyUsername(username);
    }
}

推荐阅读