我正在寻找使用第一次返回 true 的静态 bool 编写 C# 简单语句,然后始终返回 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/