gpt4 book ai didi

c# if not null then assign value 的简写

转载 作者:太空宇宙 更新时间:2023-11-03 22:33:05 24 4
gpt4 key购买 nike

现在c#中是否有任何速记可以减少以下代码:

var testVar1 = checkObject();
if (testVar1 != null)
{
testVar2 = testVar1;
}

在这种情况下,如果 CheckObject() 结果中的 testVar1 不为空,则只想分配 testVar2(testVar2 有一个将触发代码的 setter )。试图思考如何使用空合并的东西但没有真正解决。

添加到此 testVar2 的 setter 上有代码可以触发,因此如果值为 null,则不希望将 testVar2 设置为任何值。

    public MyObj testVar2
{
get { return _testVar2; }
set
{
_testVar2 = value;
RunSomeCode();
}
}

最佳答案

有一对!

三元运算符:

testvar2 = testVar1 != null ? testvar1 : testvar2;

将是完全相同的逻辑。

或者,如评论所述,您可以使用空合并运算符:

testVar2 = testVar1 ?? testVar2

(虽然现在也有评论了)

或者第三种选择:编写一个方法,然后按你喜欢的方式使用它:

public static class CheckIt
{
public static void SetWhenNotNull(string mightBeNull,ref string notNullable)
{
if (mightBeNull != null)
{
notNullable = mightBeNull;
}
}
}

并称它为:

CheckIt.SetWhenNotNull(test1, ref test2);

关于c# if not null then assign value 的简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56485596/

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