简体   繁体   English

如何在C#中的函数中创建动态(?)变量?

[英]How do I create a dynamic (?) variable in a function in C#?

My web.app is basically a calendar interface where you can add workouts to a day. 我的web.app基本上是一个日历界面,您可以在其中添加一天的锻炼。 I have a Helpers (class?) where I put all the functions just once so I can call them in other places. 我有一个Helpers(类?),在这里我只将所有功能放一次,以便可以在其他地方调用它们。 Sorry, it's been a long time since I've programmed and don't know all the correct words. 抱歉,我已经编程很长时间了,不知道所有正确的单词。 I am translating selenium ide tests written in javascript to c#. 我正在将用JavaScript编写的硒测试转换为C#。

So in this Helper below, I add a run to a day, and assign it a variable. 因此,在下面的此帮助器中,我将运行添加到一天中,并为其分配了一个变量。

 public static Int64 AddRunToday(IWebDriver driver)
    {
        //hovers over today so day context menu appears, click Add
        Common.Helpers.WaitForElement(By.CssSelector(".day.today.ui-droppable"), driver);
        Common.Helpers.MouseHover(By.CssSelector(".day.today.ui-droppable"), driver);
        driver.FindElement(By.CssSelector(".day.today .daySettings")).Click();
        Common.Helpers.WaitForElement(By.Id("calendarDaySettingsAddLabel"), driver);
        driver.FindElement(By.Id("calendarDaySettingsAddLabel")).Click();

        // selects a Run
        Common.Helpers.WaitForElement(By.CssSelector("button[data-workoutid=\"3\"]"), driver);
        driver.FindElement(By.CssSelector("button[data-workoutid=\"3\"]")).Click();
        Common.Helpers.WaitForElement(By.Id("workoutTitleField"), driver);
        driver.FindElement(By.Id("workoutTitleField")).Click();
        driver.FindElement(By.Id("workoutTitleField")).Clear();
        driver.FindElement(By.Id("workoutTitleField")).SendKeys("Today's Run");
        Common.Helpers.WaitForElement(By.Id("saveClose"), driver);
        driver.FindElement(By.Id("saveClose")).Click();
        Common.Helpers.WaitForElement(By.CssSelector(".day.today .workout.Run[data-workoutid]"), driver);
        Int64 runTodayId = (Int64)Common.Helpers.EvalScript("window.$('.day.today .workout.Run').data('workoutid')", driver);

        return runTodayId;
    }

Then in my test I write 然后在我的测试中,我写

//adds workout
        Int64 runTodayId  = Common.Helpers.AddRunToday(driver);

How can I add an infinite amount of workouts to one day? 如何在一天中添加无限量的锻炼? So, essentially I want to write something like 所以,本质上我想写类似

//adds workout
        Int64 runTodayId1 = Common.Helpers.AddRunToday(driver);
        Int64 runTodayId2 = Common.Helpers.AddRunToday(driver);
        Int64 runTodayId3 = Common.Helpers.AddRunToday(driver);

What do I put in the main function so it will be okay with this? 我要在main函数中放什么,这样就可以了吗? Like, a dynamically named variable or something, maybe? 例如,动态命名的变量之类的? Or how? 或如何?

Thank you for your help! 谢谢您的帮助!

If I understand you properly. 如果我能正确理解你的话。 You want to create a list of Int64. 您要创建一个Int64列表。

What I don't understand however is what is the factor that will generate more than one workout. 但是我不明白的是,产生不止一种锻炼的因素是什么。 Do you have separate drivers? 您有单独的驱动程序吗?

You'll need to do some sort of iteration (Driver?) to get different workouts each time. 您每次都需要进行某种迭代(驱动程序?)以进行不同的锻炼。 What do you want to do with the workouts when you are done? 完成后,您想对锻炼做什么?

List<Int64> workouts = new List<Int64>();

foreach(var something in Collection)
{
   workouts.Add(Common.Helpers.AddRunToday(something));
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM