gpt4 book ai didi

c# - 整理 if 语句 - 未实例化的对象是否可以在 AND 运算符中

转载 作者:行者123 更新时间:2023-11-30 19:34:05 25 4
gpt4 key购买 nike

如果我知道左侧将失败但如果左侧通过则右侧将被实例化,我能否将尚未实例化的 object.property 放在“AND”运算符的右侧?

在下面的示例中,第一个 if/else 语句为上述问题设置了另一个 if 语句。虽然我已经测试过它没有显示错误,但我想知道幕后发生了什么,或者有没有更好的方法。(有很多 if/else 语句使用第一个 if/else 语句的结果。

        if (_articleGuid.Equals(Guid.Empty))
{
isArticleGuid = false;
}
else
{
article = new Article(Guid.Empty, _articleGuid);
bodyText = article.Text;
articleDate = Convert.ToDateTime(article.DateActive);

isArticleGuid = true;
}

if(isArticleGuid && article.Author != null)
{
divAuthor.InnerText = article.Author;
}

最佳答案

假设我理解正确,这是安全的。 article 变量需要明确赋值,但语言保证如果 && 运算符的 LHS 表达式的计算结果为 false,则不会计算 RHS 表达式 -所以您不会得到 NullReferenceException

来自 C# 3.0 语言规范,第 7.11 节:

The operation x && y corresponds to the operation x & y, except that y is evaluated only if x is not false.

关于c# - 整理 if 语句 - 未实例化的对象是否可以在 AND 运算符中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2325132/

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