gpt4 book ai didi

c# - 这两个陈述是否相同?

转载 作者:太空狗 更新时间:2023-10-29 20:43:25 28 4
gpt4 key购买 nike

以下 2 个代码片段是否实现了相同的目的?

我的原始代码:

if (safeFileNames != null)
{
this.SafeFileNames = Convert.ToBoolean(safeFileNames.Value);
}
else
{
this.SafeFileNames = false;
}

ReSharper 认为更好的主意:

this.SafeFileNames = safeFileNames != null && 
Convert.ToBoolean(safeFileNames.Value);

我认为上面的代码更容易阅读,有什么令人信服的理由来改变它吗?
它会执行得更快吗,最重要的是,代码会做完全相同的事情吗?

此外,如果您查看:Convert.ToBoolean(safeFileNames.Value); 部分,那么这肯定会导致空引用异常吗?

this.SafeFileNames = bool

Local safeFileNames 是一个强类型的自定义对象,这里是类:

public class Configuration
{
public string Name
{
get;
set;
}
public string Value
{
get;
set;
}
}

最佳答案

你问这个问题的事实告诉我前者是首选。也就是说,在我看来,您的问题暗示您认为第一个代码更容易理解,而您不太确定第二个代码是否等效。软件设计的主要目标是管理复杂性。如果它现在让您感到困惑,那么以后您或任何支持您的代码的人也可能会感到困惑。

关于c# - 这两个陈述是否相同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1891018/

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