C# 检查该方法是否返回值或null,并根据该值分配值

C# 检查该方法是否返回值或null,并根据该值分配值,c#,null,C#,Null,我有一个场景,在这个场景中,我以下面的方式为类属性赋值 var appResponse = GetAppResponse(); appResponse.LogoImage = GetAppImage(appId); 这里的问题是有时GetImageappId返回null,在这种情况下,我不想将该null值分配给appResponse.LogoImage,只有当GetImageappId返回值时,我才想分配该值 我可以使用If条件来检查GetImageappId是否返回null,然后分配该值,但

我有一个场景,在这个场景中,我以下面的方式为类属性赋值

var appResponse = GetAppResponse();
appResponse.LogoImage = GetAppImage(appId);
这里的问题是有时GetImageappId返回null,在这种情况下,我不想将该null值分配给appResponse.LogoImage,只有当GetImageappId返回值时,我才想分配该值

我可以使用If条件来检查GetImageappId是否返回null,然后分配该值,但是我将对GetImage方法进行两次调用,我觉得这不是一个好方法

在一行中,我可以检查null,当它不为null时,则只为appResponse.LogoImage赋值吗

我可以使用If条件检查GetImageappId是否返回null 或者不,然后分配值,但我将向 GetImage方法

你为什么要叫它两次

这里只有一个电话:

var appResponse = GetAppResponse();
var appImage = GetAppImage(appId);
if (appImage != null) {
    appResponse.LogoImage = appImage;
}
你可以用:

从文档中:

空合并运算符??如果左操作数的值不为null,则返回该值;否则,它计算右操作数并返回其结果。这个如果左侧操作数的计算结果为非null,则运算符不计算其右侧操作数


你能详细说明一下如果值为空你会怎么做吗?我不明白为什么ifappResponse.LogoImage!=null语句是一种不好的方法如果您有两条路径来容纳两个不同的操作,那么不必对GetImage进行两次调用,您可以将调用的结果存储在一个变量中,然后检查变量是否为null。如果LogoImage为null,它的值应该是多少?如果必须是一行,您可以尝试使用null合并运算符。只需使用if-不需要任何花哨的东西。
appResponse.LogoImage = GetAppImage(appId) ?? appResponse.LogoImage;