获取第一次声明为真时的日期时间

时间:2015-07-16 13:54:06

标签: c#

我想捕捉一个陈述开始为真的时间。但我想第一次捕捉它是真的。例如在我的c#代码中:

if(variable > 1){
     Console.Writeline(DateTime.UtcNow.Ticks);
}

我想打印日期,但不是所有大于的值,而是大于1的第一个值。

3 个答案:

答案 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;
        }
    }