c# - 一个静态属性,第一次返回 true,之后总是 false

标签 c#

我正在寻找使用第一次返回 true 的静态 bool 编写 C# 简单语句,然后始终返回 false。

    static bool _firstTime = true;
    static bool FirstTime
    {
            get
            {
                    bool old = _firstTime;
                    _firstTime = false;
                    return old;
            }
    }

这行得通,但我正在寻找没有临时变量(这里是“旧”)的更短的东西。

谢谢。

最佳答案

您可以在 C# 中返回赋值的结果,这意味着您可以进行比较,如果 firstTimetrue,您可以返回赋值的负数为 false:

private static bool firstTime = true;
public static bool FirstTime => firstTime ? !(firstTime = false) : firstTime;

但是你的方式更容易理解。

注意:这与您的原始代码(您所说的“有效”)完全一样线程安全,这意味着它不是线程安全的。

关于c# - 一个静态属性,第一次返回 true,之后总是 false,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56979356/

相关文章:

c# - 聚合 C# 数据集时,如何将 DataSet 转换为 .Load() 的 DataTable 数组?

c# - 如何对派生自基类的类隐藏作为基类中接口(interface)实现的一部分的方法?

c# - 在线 CRM REST 服务 - 遇到问题

c# - 与 MimeMapping.GetMimeMapping 相反?

c# - 字典可以按不同的键排序吗?

c# - C#注销后如何清除存储的数据?

GET 上的 C# Web API 405 错误

c# - 从字符串中获取删除的字符

c# - 如何使用 linq 或 lambda 表达式连接两个列表

c# - 在 .NET 环境中使用 REST API 的最常见方法是什么? C#、JS 还是其他语言?