gpt4 book ai didi

c# - 我可以将强制变量为 null 与 ?? 结合起来吗?运算符(operator)?

转载 作者:行者123 更新时间:2023-11-30 18:54:33 26 4
gpt4 key购买 nike

我有这个代码:

public List<Phrase> GetViewablePhrases(MO mode, int pts = 0, bool force = false)
{
if (force == true) App.selectedPhrases = null;
App.selectedPhrases = App.selectedPhrases ?? App.DB.GetSelectedPhrases();

我真的不明白 ?? 的用法但我假设它是说如果 App.selectedPhrases 为 null,则获取新短语,否则使用现有短语。

我的函数还有一个强制选项,所以我所做的就是使用这一行:

if (force == true) App.selectedPhrases = null;

有没有办法将这两行组合起来:

if (force == true) App.selectedPhrases = null;
App.selectedPhrases = App.selectedPhrases ?? App.DB.GetSelectedPhrases();

最佳答案

我会专注于可读性:如果 force 为真或者我们目前没有任何短语,您想要获得新短语:

if (force || App.selectedPhrases == null)
{
App.selectedPhrases = App.DB.GetSelectedPhrases();
}

虽然您可以使用条件 ?: 运算符和 null 合并运算符在单个赋值语句中执行此操作,但我认为用 if 语句编写它会更清楚明确表示在其他情况下,您不会更改任何内容。

关于c# - 我可以将强制变量为 null 与 ?? 结合起来吗?运算符(operator)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55861629/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com