【问题标题】:Is there a shorter way to write this inline if?if 有没有更短的方法来写这个内联?
【发布时间】:2020-06-04 10:12:23
【问题描述】:

大家好,有没有更短的方法来写这行代码。

int objectID = jsonObject != null && jsonObject.ObjectID.HasValue && jsonObject.ObjectID.Value > 0 ? jsonObject.ObjectID.Value : defaultObject.ObjectID;

//jsonObject.ObjectID is int?

你可以使用 null 合并来检查 null 和 > 0 吗?

【问题讨论】:

    标签: c# null-coalescing-operator null-check


    【解决方案1】:

    类似这样,它利用了null conditionallifted 运算符

    int objectID = jsonObject?.ObjectID > 0 ? jsonObject.ObjectID.Value : defaultObject.ObjectID;
    

    注意:这里假设defaultObject.ObjectIDint 而不是int?

    【讨论】:

    • @BOT_Billy 如果这解决了您的问题,最好将其标记为正确,以使其他用户受益。如果您有其他喜欢的解决方案,请随时自行回答并标记为正确
    【解决方案2】:
    int objectID = jsonObject?.ObjectID.HasValue && jsonObject.ObjectID.Value > 0 ? jsonObject.ObjectID.Value : defaultObject.ObjectID;
    
    

    【讨论】:

      猜你喜欢
      • 2019-06-28
      • 2023-03-17
      • 2022-11-01
      • 2021-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多