我想捕捉一个陈述开始为真的时间。但我想第一次捕捉它是真的。例如在我的c#代码中:
if(variable > 1){
Console.Writeline(DateTime.UtcNow.Ticks);
}
我想打印日期,但不是所有大于的值,而是大于1的第一个值。
答案 0 :(得分:5)
您可以使用变量来确定是否显示日期时间。一旦显示,它将被指定为false。
public bool chk = true; // will hold the status
if(variable > 1 && chk)
{
chk = false;
Console.Writeline(DateTime.UtcNow.Ticks);
}
答案 1 :(得分:5)
另一种方法,您可以使用Nullable<DateTime>
:
DateTime? utcNow = null;
// ...
if(variable > 1 && !utcNow.HasValue){
utcNow = DateTime.UtcNow;
Console.Writeline(utcNow.Value.Ticks);
}
这种方法的好处是您还可以保留该值以供以后处理。
答案 2 :(得分:4)
bool flag = false;
if (variable > 1)
{
if (!flag)
{
Console.Writeline(DateTime.UtcNow.Ticks);
flag = true;
}
}
我建议你在方法之外声明flag变量,作为全局变量。如果你这样做,当你再次调用该方法时,将不显示任何内容(我假设你只想捕获它一次)
- 编辑 -
也许最好首先检查标志,然后检查其他条件。大多数情况下,第一个条件将退出该方法,因此会更快
bool flag = false;
if (!flag)
{
if (variable > 1)
{
Console.Writeline(DateTime.UtcNow.Ticks);
flag = true;
}
}