gpt4 book ai didi

c# - if else if in while 循环 were else if test 在第一个循环中定义

转载 作者:行者123 更新时间:2023-11-30 16:06:34 25 4
gpt4 key购买 nike

有些困惑,尤其是在尝试用标题描述时。这是一些示例代码。我希望这是可能的(我还没有找到一种方法来做到这一点。)

 DateTime startTime = DateTime.Now;
int i = 0;
bool running = true;
while (running)
{
DateTime? lastRunTime = null;
if (i == 0)
{
if ((DateTime.Now - startTime).Minutes >= Program.genTimer)
{
i = 1;
lastRunTime = DateTime.Now;
}
}
else if ((DateTime.Now - lastRunTime).Minutes >= Program.genTimer)
{
//doestuff
}

这可能看起来很愚蠢(而且这根本不起作用,显而易见的是可以为空的时间跨度不包含“分钟”的定义。我也试过

DateTime lastRunTime;

代替

DateTime? lastRunTime = null;

所以基本上我强制第一个 if 语句第一次为真,之后每次都为假。我绝对愿意接受不同的方法。

如果您好奇的话,我们的目标是在一个服务中运行它,它在不同的时间间隔内一次运行 11 个操作。由于这些操作的处理方式,我一次只能运行一个。

最佳答案

如果您使用可为 null 的 DateTime,您可能根本不需要 i.HasValue 会告诉您它是否已设置。这只会是第一次错误。同时将它移出 while 循环,否则你每次都要重新声明它。

尝试类似的东西

DateTime startTime = DateTime.Now;
bool running = true;
DateTime? lastRunTime = null;
while (running)
{
if (!lastRunTime.HasValue)
{
if ((DateTime.Now - startTime).Minutes >= Program.genTimer)
{
lastRunTime = DateTime.Now;
}
}
else if ((DateTime.Now - lastRunTime.Value).Minutes >= Program.genTimer)
{
//doestuff
}
}

关于c# - if else if in while 循环 were else if test 在第一个循环中定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32099805/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com