繁体   English   中英

检查该方法是返回值还是 null 并基于该值分配值

[英]Check whether the method is returning a value or null and based on that assign the value

我有一个场景,我通过以下方式为 class 属性赋值。

var appResponse = GetAppResponse();
appResponse.LogoImage = GetAppImage(appId);

这里的问题是有时 GetImage(appId) 返回 null,在这种情况下,我不想将 null 值分配给 appResponse.LogoImage,只有当 GetImage(appId) 返回一个值时,我才想分配该值。

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

在一行中,我可以检查 null 并且当它不是 null 时,然后仅将值分配给 appResponse.LogoImage?

我可以使用 If 条件检查 GetImage(appId) 是否返回 null 然后分配值,但随后我将对 GetImage() 方法进行 2 次调用

你为什么要叫它两次?

这里只是一个电话:

var appResponse = GetAppResponse();
var appImage = GetAppImage(appId);
if (appImage != null) {
    appResponse.LogoImage = appImage;
}

您可以使用空合并运算符??

appResponse.LogoImage = GetAppImage(appId) ?? appResponse.LogoImage;

从文档:

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM