我正在寻找使用static bool编写C#简单语句,该语句第一次返回true,然后总是false。
static bool _firstTime = true;
static bool FirstTime
{
get
{
bool old = _firstTime;
_firstTime = false;
return old;
}
}
这有效,但我正在寻找没有临时变量(此处为“旧”)的较短对象。
谢谢。
最佳答案
您可以在C#中返回赋值的结果,这意味着您可以进行比较,如果firstTime
是true
,则可以返回将其赋值给false
的结果:
private static bool firstTime = true;
public static bool FirstTime => firstTime ? !(firstTime = false) : firstTime;
但是您的方法更容易理解。
注意:这与您的原始代码(您所说的“有效”)完全一样是线程安全的,这意味着它不是线程安全的。
关于c# - 第一次返回true的静态属性,此后始终返回false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56979356/