首页 > 解决方案 > 仅当对象在一行上不为空时才设置属性

问题描述

我有一个带有一些布尔属性的普通对象,如下所示:

public class Object
{
    public bool Prop { get; set; }
}

我想做这样的事情:

Object obj;
if(obj != null) { obj.Prop = true; }

但是由于 stylecop 规则,如果全部在一行中,我就不能拥有它,我必须将它分成多行,这对我来说变得不那么可读了。我试过obj?.Prop = true了,但它给了我一个The left-hand side of an assignment cannot contain a null propagating operator错误,我理解。我可以使用其他任何运算符吗?我不是真正的 c# 专家,所以我不确定我应该使用哪一个。

如果需要,这是一个用于测试的快速游乐场:https ://ideone.com/LfjKFD

标签: c#

解决方案


如果没有 if 语句,您将无法做到这一点。在我看来,你唯一能做的就是

if(obj != null) obj.Prop = true;

在这种情况下,您可以将其放在一行中,但不能使用三元运算符。


推荐阅读